Active Job adapters¶ ↑
Active Job 提供了以下队列后端的适配器
-
请注意:我们不接受新的适配器合并请求。详情请参阅 README。
对于测试和开发,Active Job 提供了三个内置适配器
后端特性¶ ↑
| | Async | Queues | Delayed | Priorities | Timeout | Retries | |-------------------|-------|--------|------------|------------|---------|---------| | Backburner | Yes | Yes | Yes | Yes | Job | Global | | Delayed Job | Yes | Yes | Yes | Job | Global | Global | | Que | Yes | Yes | Yes | Job | No | Job | | queue_classic | Yes | Yes | Yes* | No | No | No | | Resque | Yes | Yes | Yes (Gem) | Queue | Global | Yes | | Sidekiq | Yes | Yes | Yes | Queue | No | Job | | Sneakers | Yes | Yes | No | Queue | Queue | No | | Active Job Async | Yes | Yes | Yes | No | No | No | | Active Job Inline | No | Yes | N/A | N/A | N/A | N/A | | Active Job Test | No | Yes | N/A | N/A | N/A | N/A |
Async¶ ↑
是:队列适配器能够以非阻塞方式运行任务。它可以在单独的进程或分叉的进程中运行,或者在不同的线程中运行。
否:任务在同一进程中运行。
Queues¶ ↑
是:可以通过 `queue_as` 或使用 `set` 方法设置任务的运行队列。
Delayed¶ ↑
是:适配器将通过 `perform_later` 在未来运行任务。
(Gem):使用此适配器的 `perform_later` 需要额外的 gem。
否:适配器将在下一个可用时机运行任务,并且不能使用 `perform_later`。
N/A:适配器不支持排队。
注意:`queue_classic` 从 3.1 版本开始支持任务调度。对于旧版本,您可以使用 `queue_classic-later` gem。
Priorities¶ ↑
根据适配器的不同,任务的处理顺序可以有不同的配置方式。
Job:任何继承自适配器的类都可以设置任务对象本身的优先级,相对于其他任务而言。
Queue:适配器可以设置任务队列的优先级,当使用 Active Job 设置队列时,这将得到尊重。
是:允许在任务对象、队列级别或作为默认配置选项设置优先级。
否:适配器不允许配置任务的优先级。
N/A:适配器不支持排队,因此也不支持排序。
Timeout¶ ↑
当任务运行超过预定时间后停止。
Job:可以为任务类的每个实例设置超时时间。
Queue:超时时间为该队列的所有任务设置。
Global:适配器配置为所有任务都有一个最大运行时间。
否:适配器不允许配置任务的超时时间。
N/A:此适配器不在单独的进程中运行,因此不支持超时。
Retries¶ ↑
Job:可以为任务类的每个实例设置重试次数。
是:重试次数可以全局配置、为每个实例配置或在队列级别配置。此适配器还可能呈现可重新启动的任务类失败实例。
Global:适配器有一个全局的重试次数。
否:适配器不允许配置重试次数。
N/A:此适配器不在单独的进程中运行,因此不支持重试。
- CLASS ActiveJob::QueueAdapters::AbstractAdapter
- CLASS ActiveJob::QueueAdapters::AsyncAdapter
- CLASS ActiveJob::QueueAdapters::BackburnerAdapter
- CLASS ActiveJob::QueueAdapters::DelayedJobAdapter
- CLASS ActiveJob::QueueAdapters::InlineAdapter
- CLASS ActiveJob::QueueAdapters::QueueClassicAdapter
- CLASS ActiveJob::QueueAdapters::ResqueAdapter
- CLASS ActiveJob::QueueAdapters::SidekiqAdapter
- CLASS ActiveJob::QueueAdapters::SneakersAdapter
- CLASS ActiveJob::QueueAdapters::TestAdapter
- L