所以我正在使用VM (vagrant)开发,当我开始在里面打芹菜时,我得到了这个消息:
[2014-07-15 10:16:49,627: INFO/MainProcess] beat: Starting...
[W 140715 09:16:51 state:74] Substantial drift from celery@worker_publications may mean clocks are out of sync. Current drift is
3600 seconds. [orig: 2014-07-15 09:16:51.476125 recv: 2014-07-15 10:16:51.474109]
[W 140715 09:16:51 state:74] Substantial drift from celery@worker_queue may mean clocks are out of sync. Current drift is
3600 seconds. [orig: 2014-07-15 09:16:51.480642 recv: 2014-07-15 10:16:51.475021]
当我在里面约会时,我得到一个Tue Jul 15 09:25:11 UTC 2014
,但问题是我住在葡萄牙,我的主机给我Ter Jul 15 10:25:39 WEST 2014
。
我解决这个问题的最好方法是什么?
如果我把这个放到现场呢?
我正在使用celery 3.1.12
,我没有CELERY_TIME_ZONE
集。
有时候做所有的django设置并没有帮助。原因是实例或本地的本地时间不正确(甚至差了几秒)
确保多个实例(例如me ec2和digitalocean)之间的时间相同
sudo apt-get install ntp
sudo /etc/init.d/ntp restart
以上将确保时间同步
在上面提到的之后,我在Django
中使用了以下代码TIME_ZONE = 'America/Los_Angeles'
TZINFO = 'UTC'
USE_TZ = True
# For celery
CELERY_ENABLE_UTC = True
我使用以下pip freeze
django-celery==3.1.16
Django==1.6
celery==3.1.8
这通常表示时区不匹配。注意,偏移是3600秒=恰好一小时。
芹菜变量设置为CELERY_TIMEZONE
,而不是CELERY_TIME_ZONE