看看下面的工作我會假定作業在low_priority
隊列上運行。ActiveJob是否具有特定優先級的隊列?
class GuestsCleanupJob < ActiveJob::Base
queue_as :low_priority
#....
end
我同意這一點,但這只是隊列名稱正確嗎?它實際上與優先級無關。例如,如果我使用名爲:my_queue
的隊列創建作業,它將被視爲具有與:low_priority
隊列相同的優先級。
從文檔中我找不到任何指示我可以優先排隊的作業的任何內容。我知道delayed_jobs有這個功能,但我還沒有在active_job中找到它。
是的,這是有道理的,但delayed_job的和sidekiq都支持隊列和優先級,您可以在工作級別設置此。如果您使用的是delayed_job或sidekiq適配器,活動作業是否支持此操作?這聽起來像你說的是...但是沒有任何文件實際上有幫助。我已經看過你在發佈這個問題之前添加的參考資料,但我找不到任何東西......或許我錯過了一些東西? –
您需要閱讀適用於此的適配器文檔。 ActiveJob是一個抽象。 – dimakura
我明白這一點。我已閱讀文檔 - 我正在使用delayed_jobs,您可以在delayed_job上設置作業的優先級,例如'handle_asynchronously:send_mailer,:priority => 20'.With sidekiq我可以看到這是可能的,因爲您可以設置隊列和優先級一個配置文件。延遲作業似乎沒有這個。我的問題是如何使用ActiveJob的抽象,以設置優先級...這可能通過ActiveJob或我必須使用delayed_job?看着ActiveJob中的delayed_job適配器,這似乎不可能。我不確定還有什麼要說的更清楚。 –