Ruby on rails 如何在rails中创建一个以一年为间隔运行的延迟作业?

Ruby on rails 如何在rails中创建一个以一年为间隔运行的延迟作业?,ruby-on-rails,scheduled-tasks,delayed-job,Ruby On Rails,Scheduled Tasks,Delayed Job,我想创建一个延迟作业,它将在一年间隔后连续运行?那是在每年的特定日期。如何使用延迟作业实现此目的?使用。是很好的screenacast使用,因此您可以将运行时间添加为参数,如下所示: Notifier.delay(run_at: 1.years.from_now).signup(@user) 看 要将此代码作为日常任务运行,您需要阅读并查看我个人喜欢的内容。从文档中,您将有很多方法来安排任务: require 'rufus-scheduler' scheduler = Rufus::Sche

我想创建一个延迟作业,它将在一年间隔后连续运行?那是在每年的特定日期。如何使用延迟作业实现此目的?

使用。是很好的screenacast

使用,因此您可以将运行时间添加为参数,如下所示:

Notifier.delay(run_at: 1.years.from_now).signup(@user)

要将此代码作为日常任务运行,您需要阅读并查看我个人喜欢的内容。从文档中,您将有很多方法来安排任务:

require 'rufus-scheduler'

scheduler = Rufus::Scheduler.new

# ...

scheduler.in '10d' do
  # do something in 10 days
end

scheduler.at '2030/12/12 23:30:00' do
  # do something at a given point in time
end

scheduler.every '3h' do
  # do something every 3 hours
end

scheduler.cron '5 0 * * *' do
  # do something every day, five minutes after midnight
  # (see "man 5 crontab" in your terminal)
end

另外,请注意,如果您终止了应用程序,它将失去计划,因此建议您将信息保存在数据库中,并在启动时检索它。

谢谢您的回答。但它只运行一次?我想在每年的某个特定日期运行它。我更新了我的解决方案,使之成为运行以前代码的日常任务,我希望它会有所帮助:)我同意@grosefaid。您不想为此使用延迟作业。无论何时使用像
这样的gem
,这是
cron
的一个很好的ruby抽象。