【问题标题】:Celery workers won't restart after forced stop芹菜工人在强制停止后不会重新启动
【发布时间】:2014-12-06 05:24:30
【问题描述】:

根据我的阅读,似乎是芹菜工人停止了,它应该能够在重新开始时从队列中消费。

为了测试这一点,我启动了 3 台虚拟机,每台机器都有 2 名 celery 工人。我正在使用芹菜守护进程。一台机器有客户端脚本,一台作为代理,虽然它们都在运行rabbitmq。

当我启动客户端脚本时,我的所有工作人员都在获取任务(从我可以看出的日志中)。为了测试失败时会发生什么,我发出

service celeryd stop

到我的一台机器。然后一分钟后,我发出

service celeryd start

到我一分钟前停止的机器。但是,发出此命令后,我的客户端脚本冻结并停止,我在上述机器上的工作人员再也不会收到任务。

知道发生了什么吗?我猜可能是芹菜工人在被关闭之前所做的最后一项任务以某种方式受到干扰?

仅供参考:在我的客户端脚本中收到结果后,我将删除临时队列,但我认为这不会影响上述问题。

【问题讨论】:

    标签: rabbitmq celery django-celery


    【解决方案1】:

    是的,你是对的。当启动关闭时,工作人员将在实际终止之前完成所有当前正在执行的任务[请参阅 [celery document]

    而且你最好看一下对应worker的日志,确定它真的是根本问题。

    顺便说一句,你可以使用flower来监控celery。

    【讨论】:

      猜你喜欢
      • 2018-05-23
      • 2023-03-02
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 2019-03-13
      • 2018-01-03
      • 2018-07-10
      • 2013-06-14
      相关资源
      最近更新 更多