我正在试图弄清楚Heroku每日cron是如何工作的,特别是以这种方式:
根据Heroku自己的cron docs,cron任务通常是这样编写的:
if Time.now.hour == 0 # run at midnight
User.send_reminders
end
好吧,如果我在午夜以外的时间设置cron会怎样?至少从我的调试开始,似乎只要Heroku cron运行(几乎总是不在午夜),上面的代码部分就会被忽略。
从cron.rake
中删除时间元素并使用简单语句User.send_reminders
来执行该文档时,这是一个好习惯吗?
答案 0 :(得分:4)
Heroku常见问题解答说:
Cron作业根据您的时间执行 启用加载项。如果你启用了 每小时加早上9:35, 例如,cron作业将运行于 每小时过去35分钟; 如果您启用了每日加载项 同时,它每天都会运行 9:35。
我相信这是我日常的cron工作的方式,尽管我并没有过多关注这一点。我的日常任务中没有任何时间检查。
Heroku示例中的时间检查在使用每小时cron时很有用,但在每天使用时则不行。