2016-05-31 28 views
0

由於現有的rails應用程序的後臺進程由Sidekiq管理。如何將.delay任務從Sidekiq遷移到活動作業

我如何遷移呼叫如:

Model.delay.some_action()

從Sidekiq的語法活動作業的後端無關的語法?

更新:

@ craig.karminsky指出了精心編寫Sidekiq to Active Job Wiki Page。該頁面解決了郵件程序。

老Sidekiq語法:

MyMailer.delay.send_message()

活動作業語法:

MyMailer.send_message().deliver_later

這對郵寄一個很好的解決方案,但如何遷移非郵件調用.delay如:

NotAMailer.delay.do_something()

回答

1

Sidekiq的創造者Mike Perham在這種情況下的表現非常不錯。

+0

文檔的很好鏈接,我已經更新了我的問題以更具體。 –

+0

它看起來像'.perform_later'是該頁面上的用法部分中的非郵件程序作業的關鍵......但可能有更好的選擇,我當然不知道! –

+0

Yeah'MyJob.perform_later'很不錯,但需要定義一個工作。可能沒有辦法將'Model.delay.some_action()'調用包裝爲活動作業。 –

1

我在activejob上做了一個gem:https://github.com/cristianbica/activejob-perform_later/。然而寶石沒有經過很好的測試,這種模式並不是一個好的模式。通過您的應用程序執行代碼,延遲執行會讓您的應用程序難以維護並觸發所有類型的錯誤

+0

你不喜歡你的圖案嗎? –

相關問題