在 Rails 中安排一次性作业

cha*_*eyh 5 ruby cron ruby-on-rails ruby-on-rails-4

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

Dan*_*hoe 4

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)
Run Code Online (Sandbox Code Playgroud)

Rails 维护者希望将其成为调度作业的标准机制。

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