2011-05-03 56 views
1

我想弄清楚的Heroku每天的cron是如何工作的,特别是在这样:如果Heroku每天运行cron,我们是否还需要'如果time.now.hour ...`?

按照Heroku的自己cron docs,后台任务往往是这样写的:

if Time.now.hour == 0 # run at midnight 
    User.send_reminders 
end 

那么,发生,如果有什么我在午夜以外的时间设置了cron?至少从我的调试来看,似乎每当Heroku cron运行时(几乎总是不在午夜),上面的代码段就被忽略了。

消除cron.rake中的时间元素并使其具有简单语句User.send_reminders是否是良好的做法,要在该文档运行时执行?

回答

4

Heroku的FAQ这样说:

Cron作业执行基于上,当你 启用插件。如果您在早上9:35启用 小时附加组件,例如 ,则cron作业将在每小时过去一小时的35分钟处运行 ; 如果您同时启用了 的每日附加组件,则它将每天在 9:35处运行。

我相信这就是我的日常cron工作的运行方式,尽管我没有太在意这点。我的日常cron任务中没有任何时间检查。

Heroku示例中的时间检查在使用每小时cron时非常有用,但在每天使用时不会有用。

相关问题