【发布时间】:2014-08-23 23:24:43
【问题描述】:
我需要在 Rails 中安排一个作业,其中一个方法将在模型上调用。我知道有几个基于 cron 的 gem,但这些都是用于重复工作的,因为我只需要在设定的时间执行一次工作。有没有宝石可以做到这一点?
【问题讨论】:
-
@depa 是的,这基本上就是我要找的。span>
标签: ruby-on-rails ruby ruby-on-rails-4 cron
我需要在 Rails 中安排一个作业,其中一个方法将在模型上调用。我知道有几个基于 cron 的 gem,但这些都是用于重复工作的,因为我只需要在设定的时间执行一次工作。有没有宝石可以做到这一点?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 cron
如果您部署到 Heroku,则有一个调度程序插件。
否则,您可以使用 Sidekiq + Sidetiq 来完成您要查找的内容。
【讨论】:
Rails 4.2 将具有用于调度作业的 Active Job 框架。您可以在 Rails 4.1 中使用 Active Job gem。它充当多个排队系统的标准化包装器,包括 Sidekiq 和 Resque(两者都需要 Redis 来处理延迟的作业)。使用 Active Job 可以让您在必要时灵活地更换排队系统。
您可以像这样使用 Active Job 安排作业:
MyJob.enqueue_at(5.hours.from_now, record)
Rails 维护人员打算将此作为调度作业的标准机制。
查看rails-mailinglist-signup 示例应用程序,了解如何使用活动作业。
【讨论】:
uninitialized constant ActiveJob。