如何将 .delay 任务从 Sidekiq 迁移到 Active Job



给定一个现有的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/。然而,宝石没有经过很好的测试,这种模式不是一个好的模式。通过应用程序执行的代码会延迟,这将使您的应用程序难以维护并触发各种错误

最新更新