如果 Heroku 每天运行 cron,我们还需要“if time.now.hour...”吗?
我试图弄清楚 Heroku 每日 cron 是如何工作的,特别是通过这种方式:
根据 Heroku 自己的 cron 文档< /a>,cron 任务通常这样写:
if Time.now.hour == 0 # run at midnight
User.send_reminders
end
那么,如果我在午夜以外的时间设置 cron 会发生什么?至少从我的调试来看,似乎每当 Heroku cron 运行时(几乎总是不是在午夜),上面的代码部分都会被忽略。
从 cron.rake 中消除时间元素并在该文档运行时执行简单的 User.send_reminders 语句是否是一种好的做法?
I'm trying to figure out how Heroku daily cron works, specifically in this way:
As per Heroku's own cron docs, cron tasks are often written like this:
if Time.now.hour == 0 # run at midnight
User.send_reminders
end
Well, what happens if I set up cron at a time other than midnight? At least from my debugging, it seems that whenever Heroku cron runs (nearly always not at midnight), the above section of code is simply ignored.
Is it good practice to eliminate the time element from cron.rake
and have the simple statement User.send_reminders
, to be executed whenever that document is run?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Heroku 常见问题解答是这样说的:
我相信这就是我的日常 cron 作业的运行方式,尽管我并没有太注意这一点。我的日常 cron 任务没有任何时间检查。
Heroku 示例中的时间检查在使用每小时 cron 时很有用,但在使用每日 cron 时则不然。
The Heroku FAQ says this:
I believe this is how my daily cron jobs run, although I didn't pay too much attention to that. I don't have any time checks in my daily cron task.
The time check in the Heroku example would be useful when using hourly cron, but not when using daily.