在Rails中调度一次性作业



我需要在rails中调度一个作业,其中一个方法将在模型上调用。我知道有一些基于cron的宝石,但这些都是用于重复的任务,因为我只需要在设定的时间执行一次任务。有宝石能做到这一点吗?

Rails 4.2将使用活动作业框架来调度作业。您可以在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示例应用程序,了解如何使用Active Job。

如果部署到Heroku,则有一个调度程序附加组件。

否则,您可以使用Sidekiq + Sidetiq来完成您正在寻找的内容。

最新更新