Spec-Zone.ru › Ruby on Rails 5.2

class ActiveJob::QueueAdapters::AsyncAdapter

Parent:
Object

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 для планирования и выполнения задач. Поскольку задачи используют один общий пул потоков, длительные задачи будут блокировать кратковременные задачи. Подходит для разработки/тестирования; не подходит для производства.

Публичные методы класса

new(**executor_options) Показать исходный код
# 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–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API