【问题标题】:How to diagnose Celery workers that hang如何诊断挂起的芹菜工人
【发布时间】:2011-09-23 13:51:34
【问题描述】:

我开始为 Django 项目使用 Celery。出于本地开发目的,我已经根据这些指令http://ask.github.com/celery/tutorials/otherqueues.html#django-database 使用 djcelery 和 djkombu(数据库传输)进行了设置,但计划在生产服务器上使用 rabbitmq。

我发现它有效,但一名或多名工人会随机挂起。工作人员挂在不同的任务上,因此不是一个特定任务进入无限循环的情况。当我尝试关闭 celery 时,在日志中我通常会看到所有工作人员都退出,除了一个。在工作人员挂起之前和之后,我都尝试使用 celeryctl 来获取有关工作人员的信息,但 celeryctl 总是失败并显示消息“错误:在时间限制内没有节点回复。 “。我也试过检查工人http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workers,但所有方法都没有返回任何东西。

关于如何诊断导致工人挂起或会有所帮助的任何想法。

【问题讨论】:

  • 首先在 shell 上运行 celery,调试级别为 celeryd -l DEBUG。当您重新启动 celery 或停止它时,正在执行任务的 Poolworker 在任务完成之前不会重新启动,这是正常行为。您的任务被随机阻止是不正常的。 Rabbit MQ 从来没有发生在我身上,这可能与数据库锁或连接有关。你使用的是 MYSQL InnoDB 吗? Aniway 我强烈建议使用经纪人而不是 db transport
  • 你运行的是什么版本?

标签: celery django-celery


【解决方案1】:

我遇到了同样的问题。我认为这是因为您使用的是不支持事件的 ghettoq

据问:

远程控制命令(广播)和事件不适用 贫民窟。

【讨论】:

    猜你喜欢
    • 2017-07-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2014-08-17
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多