在Docker
容器中, 使用Supervisord
启动 Celery, Broker 是采用的 RabbitMQ, 能收到任务, 但是却不执行. 但是在本地同样的配置完全没问题....下面是 Celery 的 Debug 日志, 感觉没啥问题啊......
[2017-11-01 18:02:35,918: INFO/MainProcess] Received task: excel_parse.parse_excel.tasks.connect_queue[3145f1ae-bab9-499d-9ce5-8e6dbf1a3f96]
[2017-11-01 18:02:35,919: DEBUG/MainProcess] TaskPool: Apply <function _fast_trace_task at 0x7f1c7cfb67d0> (args:('excel_parse.parse_excel.tasks.connect_queue', '3145f1ae-bab9-499d-9ce5-8e6dbf1a3f96', [], {}, {'utc': True, u'is_eager': False, 'chord': None, u'group': None, 'args': [], 'retries': 0, u'delivery_info': {u'priority': 0, u'redelivered': True, u'routing_key': u'excel_service', u'exchange': u'celery'}, 'expires': None, u'hostname': 'celery@144f99ab7079', 'task': 'excel_parse.parse_excel.tasks.connect_queue', 'callbacks': None, u'correlation_id': '3145f1ae-bab9-499d-9ce5-8e6dbf1a3f96', 'errbacks': None, 'timelimit': (None, None), 'taskset': None, 'kwargs': {}, 'eta': None, u'reply_to': 'e356ac10-ccc7-3627-b513-e411146cb553', 'id': '3145f1ae-bab9-499d-9ce5-8e6dbf1a3f96', u'headers': {}}) kwargs:{})
1
wcsjtu 2017-11-01 18:32:17 +08:00
看看 timezone 有没有问题
|
2
noobsheldon OP |
3
wcsjtu 2017-11-01 21:40:55 +08:00
@noobsheldon 那就母鸡啊~ 我只遇到过 timezone 异常,导致无限等待的问题
话说,把堆栈打印出来看看呗 |
4
noobsheldon OP @wcsjtu 执行过`celery inspect ping -A project`后, 就开始运行了. 不过原因还得再看看:)
|
5
icnych 2017-11-02 10:23:00 +08:00
我也遇到过,然后重启就可以执行,然后我用 flower 看了下 worker 的状态是离线状态,然后我就写了一个脚本定时检测,如果离线了就定时重启下 celery,最后发现会频繁的重启。因为我是在 k8s 下面跑的,最后我给这个 pod 加上了内存和 cpu 的限制就正常了,我也不解是什么原因,在容器内部直接执行 celery 的命令是正常的......
|
6
kid7788 2017-11-03 09:59:30 +08:00
我之前有一次用 flower 看到能收到任务,但是有的任务不执行(状态忘记了,反正不是 success ),后来清空了 redis 就好了。。
|