[英]DelayedJob error following upgrade to Rails 4: Delayed::DeserializationError: Job failed to load
[英]Rails 5 with DelayedJob resulting in an error
我已經安裝了Rails 5.0.0.rc1以及DelayedJob gem。 我有一些代碼在之前的Rails應用程序(Rails4.2)中完美運行,但由於某種原因它現在在heroku上繼續生產失敗。
簡而言之,我正在嘗試使用DelayedJob的'handle_asynchronously'方法發送電子郵件。 我已經創建了郵件程序並在我的模型中添加了回調,但是當我在Heroku上提交表單時,我會看到一個Rails錯誤屏幕。 在我的日志中,我看到一個錯誤,指出'ArgumentError:錯誤的參數數量(給定1,預期為0)'。 如果我刪除'handle_asynchronously'方法,那么我的回調工作。 我顯然想使用DelayedJob發送郵件等。
我的代碼看起來像這樣:
FooModel.rb
....
after_create :send_welcome_mail
def send_welcome_mail
FooMailer.welcome_email(self).deliver
end
handle_asynchronously :send_welcome_mail
就像我說的那樣,這段代碼與Rails4完美配合。 有人能幫助我嗎? 我需要在Rails5中做一些不同的事情嗎?
在我看來,像Delayed Job還不支持Rails 5:
我認為使用ActiveJob作為排隊后端的抽象可能是個好主意。 就像是:
def send_welcome_mail
FooMailer.welcome_email(self).deliver_later
end
然后你不需要handle_asynchronously
調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.