检查当前正在运行的 Celery 任务会发现一个奇怪的time_start
时间戳:
>> celery.app.control.inspect().active()
{u'celery@worker.hostname': [{u'acknowledged': True,
u'args': u'(...,)',
u'delivery_info': {u'exchange': u'celery',
u'priority': 0,
u'redelivered': None,
u'routing_key': u'celery'},
u'hostname': u'celery@worker.hostname',
u'id': u'3d92fdfd-524e-4ba1-98cb-cf83af2ad8e9',
u'kwargs': u'{}',
u'name': u'task_name',
u'time_start': 9636801.218162088,
u'worker_pid': 7931}]}
该time_start
属性将任务追溯到1970 年(那是在创建 Celery、Python 之前,而且我没有定制的 DeLorean):
>> from datetime import datetime
>> datetime.fromtimestamp(9636801.218162088)
datetime.datetime(1970, 4, 22, 13, 53, 21, 218162)
我是否误解了time_task
属性?我的 Celery 应用程序配置错误吗?
我在 Linux 上使用带有 Django 应用程序和 Redis 后端的 Celery 3.1.4。
任务由执行如下的工作人员运行:
./manage.py celery worker --loglevel=INFO --soft-time-limit=600 --logfile=/tmp/w1.log --pidfile=/tmp/w1.pid -n 'w1.%%h'