我想知道如何在django和芹菜中正确使用时间设置。
这就是我所拥有的:
TIME_ZONE = 'Europe/Oslo'
CELERY_TIMEZONE = 'Europe/Oslo'
CELERY_ENABLE_UTC = True
USE_TZ = True
TZINFO = 'UTC'
但我的Celery任务的时间戳提前了两个小时。我该如何解决?
使用:
Django - 1.6b2
芹菜 - 3.0.23
django-celery - 3.0.23
答案 0 :(得分:1)
您可以使用TZ默认环境变量。 Django会自动使用它来调用:http://docs.python.org/2/library/time.html#time.tzset 如果你的芹菜从django运行,它也会在那里工作。
你也可以使用类似的东西:
os.environ ['TZ'] ='你的时区'
在本地安装的(manage.py或wsgi.py)开头。
答案 1 :(得分:0)
我想你可能会碰到django-celery中的一个我也遇到过的bug。在django-celery的最后几个版本中存在与时区相关的变化,当我从3.0.19更新到3.0.23时,这个bug首次出现在我身上。
我在#celery IRC聊天中询问了这个问题,并被告知基于django管理员的芹菜任务视图不是那么好,我应该使用Flower(https://github.com/mher/flower)这样的东西来监控我的任务。
我安装并运行了Flower,它没有受到基于django-celery管理员视图所做的相同时间戳问题的影响。