class ActiveJob::QueueAdapters::AsyncAdapter
Active Job Async адаптер
Адаптер Async выполняет задания с помощью потоковой очереди в процессе.
Это адаптер очереди по умолчанию. Он хорошо подходит для разработки/тестирования, так как не требует внешней инфраструктуры, но он не подходит для производства, поскольку он отбрасывает ожидающие задачи при перезапуске.
Для использования этого адаптера установите адаптер очереди в :async:
config.active_job.queue_adapter = :async
Для настройки потоковой очереди адаптера инициализируйте адаптер и передайте свой собственный конфиг:
config.active_job.queue_adapter = ActiveJob::QueueAdapters::AsyncAdapter.new \ min_threads: 1, max_threads: 2 * Concurrent.processor_count, idletime: 600.seconds
Адаптер использует потоковую очередь Concurrent Ruby для планирования и выполнения задач. Поскольку задачи используют одну общую потоковую очередь, длительные задачи будут блокировать кратковременные задачи. Хорошо подходит для разработки/тестирования, но плохо для производства.
Публичные методы класса
# File activejob/lib/active_job/queue_adapters/async_adapter.rb, line 35 def initialize(**executor_options) @scheduler = Scheduler.new(**executor_options) end
См. Concurrent::ThreadPoolExecutor для параметров исполнителя.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.