鉴于现有的rails应用程序具有由Sidekiq管理的后台进程。
如何迁移调用,例如:
Model.delay.some_action()
从Sidekiq的语法到Active Job的后端不可知语法?
更新
@ craig.karminsky指出了写得很好的Sidekiq to Active Job Wiki Page。此页面针对邮寄者。
Old Sidekiq语法:
MyMailer.delay.send_message()
Active Job语法:
MyMailer.send_message().deliver_later
这对于邮件程序来说是一个很好的解决方案,但我如何将非邮件程序调用迁移到.delay
,例如:
NotAMailer.delay.do_something()
答案 0 :(得分:1)
Sidekiq的创始人迈克·佩勒姆(Mike Perham)对于这种情况非常好Wiki page。
答案 1 :(得分:1)
我在activejob之上制作了一个宝石:https://github.com/cristianbica/activejob-perform_later/。然而,宝石尚未经过严格测试,这种模式不是很好。在您的应用程序中执行代码会导致执行延迟,这将使您的应用程序难以维护并触发所有类型的错误