![](/img/trans.png)
[英]How does one use delayed_job to make an Rails 3.0 ActionMailer run asynchronously? Encountering ArgumentErrors
[英]Is it possible to run a delayed job immediately but still asynchronously?
我們使用DelayedJob在后台運行任務,因為它們可能需要一段時間,也因為如果拋出錯誤,我們仍然希望 Web 請求成功。
問題是,有時工作可能非常大(更改數百或數千個數據庫行),有時可能非常小(如 5 db 行)。 對於較小的情況,我們仍然希望將其作為延遲作業運行,以便錯誤處理可以以相同的方式工作,但我們希望不必等待大約 5 秒鍾讓 DJ 接聽工作。
有沒有辦法將作業排隊以便它在后台運行,然后立即運行它,這樣我們就不必等待工作人員在 5 秒后執行?
編輯:是的,這是 Ruby on Rails :-)
延遲作業以設定的時間間隔輪詢數據庫以獲取新的 dj 記錄。 您可以在初始化程序中重新配置此間隔:
# config/delayed_job.rb
Delayed::Worker.sleep_delay = 2 # or 1 if you're feeling wild.
這將在全球范圍內影響 DJ。
怎么樣
SomeJob.set(
wait: 0,
queue: "queue_name",
).perform_later
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.