我需要在rails中安排一个作业,其中一个方法将调用模型。我知道有几个基于cron的宝石,但这些都是为了重复工作,因为我需要在设定的时间只执行一次工作。有没有宝石可以做到这一点?
答案 0 :(得分:2)
Rails 4.2将具有用于调度作业的Active Job框架。您可以在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。
答案 1 :(得分:0)
如果部署到Heroku,则会有一个调度程序加载项。
否则,您可以使用Sidekiq + Sidetiq来完成您的目标。