【发布时间】:2017-08-30 09:30:00
【问题描述】:
如何在运行时在 rails/heroku 中动态创建和运行重复的延迟作业并根据需要删除它们?这有什么好的宝石吗?
我希望能够根据用户的选择从运行时以可配置的频率安排延迟作业。有没有可以帮助我实现这一目标的宝石?这专门用于以特定频率和开始和结束日期安排定期付款,因此我需要能够检索延迟的作业并停用它们。感谢您的任何意见。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 heroku
如何在运行时在 rails/heroku 中动态创建和运行重复的延迟作业并根据需要删除它们?这有什么好的宝石吗?
我希望能够根据用户的选择从运行时以可配置的频率安排延迟作业。有没有可以帮助我实现这一目标的宝石?这专门用于以特定频率和开始和结束日期安排定期付款,因此我需要能够检索延迟的作业并停用它们。感谢您的任何意见。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 heroku
您可以选择名为 whenever 的 gem。它有很好的文档,我认为它会帮助你找到你想要的东西。这是链接https://github.com/javan/whenever。
【讨论】:
您至少可以使用两种好的解决方案:
Heroku 调度程序 (https://elements.heroku.com/addons/scheduler)。
发条宝石 (https://github.com/Rykian/clockwork)。在 Heroku 上 您可以将其作为单独的测功机进行旋转。
我建议您只使用例如将作业添加到后台工作队列中。 Sidekiq、Delayed::Job 或 SuckerPunch。原因是您不希望调度程序冻结,因为您的任务会浪费 CPU 周期和 RAM。
【讨论】: