Active Job 介面
Active Job 有下列排隊後端介面
-
請注意:我們不接受新增介面的 pull request。有關更多詳細資訊,請參閱 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 |
| Sucker Punch | Yes | Yes | Yes | No | No | 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
是:排隊介面有能力以非封鎖方式執行工作。它會在個別或分岔的程序,或在不同的執行緒上執行。
否:工作會在同一個程序中執行。
排隊
是:工作可以透過 queue_as 或使用 set 方法設定在哪些排隊中執行。
延遲
是:介面會透過 perform_later 在未來執行工作。
(寶石):使用這個介面的 perform_later 需要額外的寶石。
否:介面會在下次機會執行工作,且無法使用 perform_later。
不適用:介面不支援排隊。
注意:queue_classic 支援工作排程,版本 3.1 起。對於較舊的版本,您可以使用 queue_classic-later 寶石。
優先順序
工作處理的順序可以根據介面不同而有不同的設定。
工作:繼承自介面的任何類別都可以設定工作物件的優先順序,相對於其他工作。
佇列:當使用 Active Job 設定佇列時,此轉接器可以設定工作佇列的優先順序。
是:允許在工作物件、佇列層級或預設組態選項中設定優先順序。
否:此轉接器不允許組態工作的優先順序。
不適用:此轉接器不支援佇列,因此無法排序。
逾時
工作會在分配時間後停止。
工作:逾時可以設定在工作類別的每個執行個體。
佇列:逾時設定在佇列中的所有工作。
全域:此轉接器組態為所有工作都有最大執行時間。
否:此轉接器不允許組態工作的逾時。
不適用:此轉接器不會在個別程序中執行,因此不支援逾時。
重試
工作:重試次數可以設定在工作類別的每個執行個體。
是:重試次數可以在全域、每個執行個體或佇列中組態。此轉接器也可能會顯示可以重新啟動的工作類別的失敗執行個體。
全域:此轉接器有全域重試次數。
否:此轉接器不允許組態重試次數。
不適用:此轉接器不會在個別程序中執行,因此不支援重試。
- 類別 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 137 def lookup(name) const_get(name.to_s.camelize << ADAPTER) end