如果Heroku每天运行cron,我们还需要'if time.now.hour ......`?

时间:2011-05-03 20:52:17

标签: ruby-on-rails ruby-on-rails-3 cron heroku

我正在试图弄清楚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来执行该文档时,这是一个好习惯吗?

1 个答案:

答案 0 :(得分:4)

Heroku常见问题解答说:

  

Cron作业根据您的时间执行   启用加载项。如果你启用了   每小时加早上9:35,   例如,cron作业将运行于   每小时过去35分钟;   如果您启用了每日加载项   同时,它每天都会运行   9:35。

我相信这是我日常的cron工作的方式,尽管我并没有过多关注这一点。我的日常任务中没有任何时间检查。

Heroku示例中的时间检查在使用每小时cron时很有用,但在每天使用时则不行。