V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
noobsheldon
V2EX  ›  Python

大家有没有遇到过 Celery 收到任务不执行的情况?

  •  
  •   noobsheldon · 2017-11-01 18:14:21 +08:00 · 6437 次点击
    这是一个创建于 2564 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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:{})
    
    
    6 条回复    2017-11-03 09:59:30 +08:00
    wcsjtu
        1
    wcsjtu  
       2017-11-01 18:32:17 +08:00
    看看 timezone 有没有问题
    noobsheldon
        2
    noobsheldon  
    OP
       2017-11-01 18:40:33 +08:00
    @wcsjtu 应该不是, 我在容器内部使用 root 账户执行 python manage.py celery worker -l info -A project 就能正确执行. 容器启动时, 原本使用的是 Supervisor 执行的 python manage.py celery worker -l info -A project.
    wcsjtu
        3
    wcsjtu  
       2017-11-01 21:40:55 +08:00
    @noobsheldon 那就母鸡啊~ 我只遇到过 timezone 异常,导致无限等待的问题
    话说,把堆栈打印出来看看呗
    noobsheldon
        4
    noobsheldon  
    OP
       2017-11-02 09:23:54 +08:00
    @wcsjtu 执行过`celery inspect ping -A project`后, 就开始运行了. 不过原因还得再看看:)
    icnych
        5
    icnych  
       2017-11-02 10:23:00 +08:00
    我也遇到过,然后重启就可以执行,然后我用 flower 看了下 worker 的状态是离线状态,然后我就写了一个脚本定时检测,如果离线了就定时重启下 celery,最后发现会频繁的重启。因为我是在 k8s 下面跑的,最后我给这个 pod 加上了内存和 cpu 的限制就正常了,我也不解是什么原因,在容器内部直接执行 celery 的命令是正常的......
    kid7788
        6
    kid7788  
       2017-11-03 09:59:30 +08:00
    我之前有一次用 flower 看到能收到任务,但是有的任务不执行(状态忘记了,反正不是 success ),后来清空了 redis 就好了。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.