在導軌和ActionJob
接口的通用模式是成立一個工作與perform()
方法得到通過perform_now
或perform_later
差異deliver_later`
異步調用在特殊郵件程序的情況下,可以直接調用自ActionJob
deliver_now
或deliver_later
都很好,ActionMailer
集成。
的rails documentation有以下評論 -
# If you want to send the email now use #deliver_now
UserMailer.welcome(@user).deliver_now
# If you want to send the email through Active Job use #deliver_later
UserMailer.welcome(@user).deliver_later
的措辭使得它看起來像deliver_now
將不使用ActiveJob
發送郵件。這是否正確,如果是這樣,deliver_now
和deliver_later
之間的真正區別是什麼?一個不是異步的嗎?
同樣,也同樣差適用於perform_now
和perform_later
?
謝謝!
如果什麼瀏覽器連接被關閉?deliver_later還會執行嗎? – gates
@gates'deliver_later'在服務器端進行管理,因此瀏覽器連接是否關閉並不重要。一旦作業被推入隊列,它將被髮送(除非你終止作業過程)。 –
謝謝丹尼爾.. – gates