Active Job 适配器
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 |
异步
是:排队适配器能够以非阻塞的方式运行作业。它要么在单独的进程或分叉进程中运行,要么在不同的线程中运行。
否:作业在同一个进程中运行。
队列
是:作业可以通过 `queue_as` 或 `set` 方法设置其运行的队列。
延迟
是:适配器将通过 `perform_later` 在将来运行作业。
(Gem):使用此适配器需要额外的 gem 来实现 `perform_later`。
否:适配器将在下一次机会运行作业,无法使用 `perform_later`。
N/A:适配器不支持排队。
注意:从 3.1 版本开始,`queue_classic` 支持作业调度。对于旧版本,您可以使用 `queue_classic-later` gem。
优先级
作业处理的顺序可以根据适配器进行不同的配置。
作业:任何继承自适配器的类都可以设置作业对象的优先级,相对于其他作业而言。
队列:当使用 Active Job 设置队列时,适配器可以为作业队列设置优先级,这将被尊重。
是:允许在作业对象、队列级别或作为默认配置选项设置优先级。
否:适配器不允许配置作业的优先级。
N/A:适配器不支持排队,因此也不支持排序。
超时
作业将在分配的时间后停止运行。
作业:可以为每个作业类实例设置超时时间。
队列:超时时间是为队列上的所有作业设置的。
全局:适配器配置为所有作业都有最长运行时间。
否:适配器不允许配置作业的超时时间。
N/A:此适配器不在单独的进程中运行,因此不支持超时。
重试
作业:可以为每个作业类实例设置重试次数。
是:重试次数可以全局配置,也可以为每个实例或队列配置。此适配器还可以呈现可以重新启动的作业类失败实例。
全局:适配器具有全局重试次数。
否:适配器不允许配置重试次数。
N/A:此适配器不在单独的进程中运行,因此不支持重试。
- 类 ActiveJob::QueueAdapters::AbstractAdapter
- 类 ActiveJob::QueueAdapters::AsyncAdapter
- 类 ActiveJob::QueueAdapters::BackburnerAdapter
- 类 ActiveJob::QueueAdapters::DelayedJobAdapter
- 类 ActiveJob::QueueAdapters::InlineAdapter
- 类 ActiveJob::QueueAdapters::QueueClassicAdapter
- 类 ActiveJob::QueueAdapters::ResqueAdapter
- 类 ActiveJob::QueueAdapters::SidekiqAdapter
- 类 ActiveJob::QueueAdapters::SneakersAdapter
- 类 ActiveJob::QueueAdapters::SuckerPunchAdapter
- 类 ActiveJob::QueueAdapters::TestAdapter
- L
类公开方法
lookup(name) 链接
返回指定名称的适配器。
ActiveJob::QueueAdapters.lookup(:sidekiq)
# => ActiveJob::QueueAdapters::SidekiqAdapter
来源:显示 | 在 GitHub 上
# File activejob/lib/active_job/queue_adapters.rb, line 135 def lookup(name) const_get(name.to_s.camelize << ADAPTER) end