【问题标题】:Django crontab doesnot execute at specific timeDjango crontab 不在特定时间执行
【发布时间】:2020-11-11 07:40:23
【问题描述】:

我在特定时间安排一个 cron 作业,但下面的代码不起作用

('22 20 * * *', 'sentimentor.cron.sentiment')

上述代码应在每天 UTC 晚上 8:22 执行

但如果我将代码更改为以下代码,它就可以工作

('*/1 * * * *', 'sentimentor.cron.sentiment')

以上代码将每 1 分钟执行一次,这不是必需的

我尝试了很多不同的方法,如果有任何可用的解决方案,请帮助我。

【问题讨论】:

  • 你的时区是UTC吗?
  • /etc/timezone 或 /etc/default/cron 的值是多少
  • 时区也是 UTC,我仅根据 UTC 时间安排 cron 作业

标签: python django django-rest-framework cron


【解决方案1】:

这可能是由于时区差异。 如果您的系统时间是 IST(印度标准时间),即 UTC + 5:30,那么您必须在 UTC 中添加 5 小时 30 分钟,同时添加一个 cron。同样,它适用于其他时区。首先,您必须验证您的系统时区是否为 UTC。

如果您的时区是 IST,那么您的 cron 应该是:

('52 1 * * *', 'sentimentor.cron.sentiment')

在 linux 或 mac 中使用以下方法查找您的时区:

date +'%z %Z'

【讨论】:

  • 请分享您的发现或此解决方案是否适合您。 @Jay
  • 感谢您的回答我检查了我的时区它的 IST 但 django 项目的时区是不同的它的 UTC 吗?如果我没记错的话。
  • 默认情况下,Django 会选择系统时间。如果这是唯一的问题,那么给定的解决方案将起作用。您可以投票并将答案标记为已接受,以便其他有类似问题的人可以从中受益。
  • 嘿,我尝试同时使用 IST 时间和 UTC 时间并尝试对其进行测试,但没有成功
  • 我还尝试了上述方法,使所有时区同质化,即我将所有 timexones 设置为 UTC,但这不起作用请建议我进行任何其他修复
猜你喜欢
  • 2010-09-05
  • 1970-01-01
  • 2018-05-17
  • 2021-07-03
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 2018-06-14
相关资源
最近更新 更多