如何将.delay任务从Sidekiq迁移到活动作业

时间:2016-05-31 22:29:27

标签: ruby-on-rails sidekiq rails-activejob

鉴于现有的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()

2 个答案:

答案 0 :(得分:1)

Sidekiq的创始人迈克·佩勒姆(Mike Perham)对于这种情况非常好Wiki page

答案 1 :(得分:1)

我在activejob之上制作了一个宝石:https://github.com/cristianbica/activejob-perform_later/。然而,宝石尚未经过严格测试,这种模式不是很好。在您的应用程序中执行代码会导致执行延迟,这将使您的应用程序难以维护并触发所有类型的错误