Celery是个好东西,但是不具体去分析,等出现错误会显得手忙脚乱
1) 启动调试方法
celery worker -c 2 -A project -B -l debug -f /var/log/project.log
日志基本没有,控制台就是一些debug和warning日志
[2017-01-16 13:06:35,449: INFO/Beat] beat: Starting...
[2017-01-16 13:06:35,461: INFO/MainProcess] Connected to amqp://username:**@127.0.0.1:5672/
[2017-01-16 13:06:35,482: DEBUG/Beat] Current schedule:
<Entry: 任务名称 <crontab: */3 * * * * (m/h/d/dM/MY)>
[2017-01-16 13:06:35,482: DEBUG/Beat] beat: Ticking with max interval->5.00 minutes
[2017-01-16 13:06:35,483: INFO/MainProcess] mingle: searching for neighbors
[2017-01-16 13:06:35,503: INFO/Beat] Scheduler: Sending due task 任务名称 (任务名称)
[2017-01-16 13:06:36,500: INFO/MainProcess] mingle: all alone
[2017-01-16 13:06:36,528: WARNING/MainProcess] celery@localhost ready.
[2017-01-16 13:06:36,559: DEBUG/MainProcess] Canceling task consumer...
[2017-01-16 13:06:36,561: INFO/MainProcess] beat: Shutting down...
[2017-01-16 13:06:37,587: DEBUG/MainProcess] Canceling task consumer...
[2017-01-16 13:06:37,588: DEBUG/MainProcess] Closing consumer channel...
然后怎么办,懵逼了...
这个时候,不能随便猜了,不信你可要猜一晚上试试
去git上下celery的源码,搜索关键字
Canceling task consumer
估计原因是在xx地方报错了,然后打印了2行日志出来.
找到代码在worker/consumer.py里面
def shutdown(self, c):
if c.task_consumer:
import traceback
debug("start shutdown traceback ====")
traceback.print_stack()
self.stop(c)
debug('Closing consumer channel...')
ignore_errors(c, c.task_consumer.clo