在Rails中安排一次性工作

我需要在rails中安排一个作业,其中一个方法将调用模型。 我知道有几个基于cron的gem,但这些都是为了重复工作,因为我需要在设定的时间只执行一次工作。 有没有gem可以做到这一点?

Rails 4.2将具有用于调度作业的活动作业框架。 您可以在Rails 4.1中使用Active Job gem。 它可作为多个排队系统的标准化包装器,包括Sidekiq和Resque(两者都需要Redis来处理延迟的作业)。 使用活动作业可以在必要时灵活地交换排队系统。

您可以使用Active Job安排作业,如下所示:

MyJob.enqueue_at(5.hours.from_now, record) 

Rails维护者打算将其作为调度作业的标准机制。

查看rails-mailinglist-signup示例应用程序,了解如何使用Active Job。

如果部署到Heroku,则会有一个调度程序加载项。

否则,您可以使用Sidekiq + Sidetiq来完成您所需的工作。