【问题标题】:celery beat schedule with timezone configuration doesn't start at the the right time带有时区配置的芹菜节拍时间表没有在正确的时间开始
【发布时间】:2017-08-02 06:10:03
【问题描述】:

python 版本:3.5.2 芹菜版本:4.1.0

服务器本地时区:亚洲/北京时区 +08:00 CST

芹菜设置:

timezone = "Asia/Shanghai"

beat_schedule = {
    "test.hello": {
        "task": "test.hello",
        "args": (),
        "schedule": crontab(minute=55, hour=22, day_of_week="Mon,Tue,Wed,Thu,Fri")
    },

}

但是 celery beat 运行任务从2017-08-02 07:01:00 CST 开始,

实际上任务应该从2017-08-01 22:55:00 +08:00开始。

【问题讨论】:

  • 你在使用 Django 吗?如果是这样,您是否按照in the documentation 的描述手动重置了时间表?

标签: python timezone celery


【解决方案1】:

需要使用enable_utctimezone 启用 celery 设置。

enable_utc = True
timezone = "Asia/Shanghai"

这可以使任务按我们的预期运行。

否则 celery 时间表将从 UTC 时区开始。

【讨论】:

    【解决方案2】:

    我收到一个错误,即使更改时区也没有更新。

    使用它来设置您的时区,而不是 UTC 。

    CELERY_TIMEZONE = 'Asia/Shanghai' # write your timezone
    app.conf.enable_utc = False
    

    这个解决方案对我有用

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 2016-11-16
      • 1970-01-01
      • 2020-07-04
      • 2018-09-08
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多