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
darksand
V2EX  ›  Python

celery 经常卡死,求帮助

  •  
  •   darksand · 2018-08-06 16:39:43 +08:00 · 5867 次点击
    这是一个创建于 2297 天前的主题,其中的信息可能已经有所发展或是发生改变。

    celery worker 经常卡死,例如 并发数 是 4,然后经常就有 4 个任务状态卡在 started 或者 received 不动,然后也不会抛出异常。我是设置了超时的 CELERYD_TASK_SOFT_TIME_LIMIT = 120

    但是时间过了很久 也不会抛出 异常 SoftTimeLimitExceeded

    我看文档是肯定会抛出的。但是这个有的时候能抛出,有的时候不会抛出,然后就卡死在那个地方! 整了一周了还是没找到问题

    11 条回复    2018-10-16 08:54:55 +08:00
    ohhe
        1
    ohhe  
       2018-08-06 16:56:38 +08:00
    什么版本
    某些版本有这样的问题
    WinMain
        2
    WinMain  
       2018-08-07 08:41:58 +08:00
    用的 redis ?
    myyou
        3
    myyou  
       2018-08-07 10:10:45 +08:00
    celery 的确会这样,内存占用会越来越多,然后就假死,建议写个检测脚本定时重启。
    或者找一个替代品例如这个: https://github.com/Bogdanp/dramatiq
    darksand
        4
    darksand  
    OP
       2018-08-07 11:09:14 +08:00
    @WinMain rabbitmq
    darksand
        5
    darksand  
    OP
       2018-08-07 11:11:21 +08:00
    @myyou 如果用检测脚本定时重启的话,请问怎么检测到是否假死呢?
    myyou
        6
    myyou  
       2018-08-07 13:53:03 +08:00
    @darksand 之前做的是每隔一段时间就检测 celery 所有进程内存占用,到一定量时不管假不假死都重启。你可以根据是否有日志输出来重启。
    实际我还是建议你换这个 https://github.com/Bogdanp/dramatiq,celery 我一直怀疑它内存泄漏。
    darksand
        7
    darksand  
    OP
       2018-08-07 16:45:57 +08:00
    @myyou 感谢
    darksand
        8
    darksand  
    OP
       2018-08-07 16:46:43 +08:00
    @ohhe 用的 4.2.0
    ohhe
        9
    ohhe  
       2018-08-07 17:20:31 +08:00
    try 4.1 或者 3.1
    qq7171891
        10
    qq7171891  
       2018-10-16 08:53:38 +08:00
    我也是。。我头都大了。。任何异常不抛出,同时使用 beat 和 worker,会发现 beat 很好,worker 会过几天突然莫名其妙的不执行了,Received task 都没有了,但是开了 Debug 模式,没有任何异常报告。
    qq7171891
        11
    qq7171891  
       2018-10-16 08:54:55 +08:00
    实在不成打算用 RQ 了。不好的地方就是首先要重新学习,其次 RQ 没有原生支持类似 beat 这样的计划任务模块,但有扩展包,别人写了一个。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3324 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:21 · PVG 20:21 · LAX 04:21 · JFK 07:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.