5
當讀取Sidekiq Wiki我看下面的例子:Sidekiq中perfrom_async和延遲有什麼區別?
發送消息異步處理:
HardWorker.perform_async('bob', 5)
您也可以通過調用延遲的方法發送消息上課方法:
User.delay.do_some_stuff(current_user.id, 20)
此外,從Delayed extensions:
使用延遲交付你的電子郵件是異步的。使用delay_for(間隔)或delay_until(時間)在將來某個時間發送電子郵件。
UserMailer.delay.welcome_email(@ user.id) UserMailer.delay_for(5.days).find_more_friends_email(@ user.id) UserMailer.delay_until(5.days.from_now).find_more_friends_email(@ user.id )
那麼實際上perfrom_async
和delay
之間的區別是什麼?在哪種情況下我會比較喜歡那種?
在Mail對象上爲你自動調用'.deliver'還是哪一個不自動調用? – Andrei
ActionMailer電話的延遲爲您提供。 perform_async是通用的後臺調用,您需要在執行方法中調用遞送。 –
「儘可能使用perform_async」@MikePerham那麼,爲什麼ActiveRecord和ActionMailer建議使用文檔(https://github.com/mperham/sidekiq/wiki/Delayed-extensions)暗示延遲? – ChrisH