Gor*_*oro 12 python rabbitmq celery django-celery
我有以下设置:
CELERYD_OPTS="--time-limit=600 -c:low_p 100 -c:high_p 50 -Q:low_p low_priority_queue_name -Q:high_p high_priority_queue_name"我的问题是,有时候队列似乎"备份"......就是它会停止消耗任务.似乎有这样的情景:
celery inspect active这表明并非所有工作者都用完了 - 也就是说,我只会看到一些活动任务strace在工作进程上使用不会返回任何内容......工作者完全没有活动我将不胜感激任何信息或指示:
strace用来查看工作进程正在做什么,但到目前为止,这对于告诉我工人正在挂起是有用的flower和events,但他们是在实时兼具优良-但没有任何自动化监控/报警功能).我最好用supervisord编写自己的监控工具吗?另外,我从django-celery开始我的任务
@goro,如果您向外部服务发出请求,您应该尝试gevent 或 eventlet池实现,而不是生成 100500 个工作人员。我也遇到了问题,当 celery 工作人员停止消耗任务时,这是由celery+gevent+sentry(raven)组合的错误引起的。
我对 Celery 发现的一件事是,如果一切都正确的话,它可以在没有任何监控的情况下正常工作(目前我每天执行 > 50M 的任务),但如果不是这样,监控不会对你有太大帮助。Celery 中的“灾难恢复”有点棘手,并非所有事情都会按您的预期进行:(
您应该在较小的和平上打破您的解决方案,可能会在不同队列之间分离一些任务。在某些时候,您会发现导致问题的代码片段。
| 归档时间: |
|
| 查看次数: |
5802 次 |
| 最近记录: |