给定一个现有的rails应用程序,其后台进程由Sidekiq管理。
如何迁移呼叫,例如:
Model.delay.some_action()
从 Sidekiq 的语法到 Active Job 的后端不可知语法?
更新:
@craig.karminsky指出了写得很好的Sidekiq到Active Job Wiki页面。此页面地址为邮件。
旧 Sidekiq 语法:
MyMailer.delay.send_message()
活动作业语法:
MyMailer.send_message().deliver_later
来说,这是一个很好的解决方案,但是如何将非邮件程序调用迁移到.delay
例如:
NotAMailer.delay.do_something()
Sidekiq的创建者Mike Perham为这种情况提供了一个非常好的Wiki页面。
我在 activejob 之上为此做了一个宝石:https://github.com/cristianbica/activejob-perform_later/。然而,宝石没有经过很好的测试,这种模式不是一个好的模式。通过应用程序执行的代码会延迟,这将使您的应用程序难以维护并触发各种错误