我想创建一个延迟工作,这个工作将在一年间隔后连续运行?那是每年的特定日期。如何使用延迟工作实现这一目标?
答案 0 :(得分:1)
使用whenever gem。 Here是一个很好的screenacast
答案 1 :(得分:0)
使用delay-jobs gem,以便您可以按以下方式添加作为参数运行的时间:
Notifier.delay(run_at: 1.years.from_now).signup(@user)
要将此代码作为日常任务运行,您需要阅读Resque gem,resque-scheduler gem,并查看helpful question
答案 2 :(得分:0)
我个人喜欢rufus-scheduler。从文档中,您可以通过多种方式安排任务:
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
另外,请注意,如果您终止了应用程序,它将会丢失计划,因此建议将信息保存在数据库中并在启动时检索它。