【问题标题】:Celery worker not stopping芹菜工人不停
【发布时间】:2019-03-13 13:55:42
【问题描述】:

我有一个在 webfaction 上运行的 django 应用程序,几天前我升级了一个包,该包也将 django 升级到了 2.1 版(从 2.0 版)。此后不久,芹菜停止工作,当我尝试在主管中重新启动它时,出现以下错误:

http://127.0.0.1:12637 refused connection

当我检查主管日志时,我看到了以下内容:

2018-10-06 21:56:58,356 WARN received SIGHUP indicating restart request
2018-10-06 21:56:58,417 INFO waiting for accconsole_celery, catdemo, accconsole_celerybeat to die
2018-10-06 21:56:58,418 INFO exited: catdemo (terminated by SIGTERM; not expected)
2018-10-06 21:56:58,432 WARN received SIGTERM indicating exit request
2018-10-06 21:56:58,590 INFO stopped: accconsole_celerybeat (terminated by SIGHUP)
2018-10-06 21:57:01,604 INFO waiting for accconsole_celery to die
2018-10-06 21:57:04,721 INFO waiting for accconsole_celery to die
2018-10-06 21:57:07,729 INFO waiting for accconsole_celery to die
2018-10-06 21:57:10,736 INFO waiting for accconsole_celery to die
2018-10-06 21:57:13,740 INFO waiting for accconsole_celery to die
2018-10-06 21:57:16,747 INFO waiting for accconsole_celery to die
2018-10-06 21:57:19,752 INFO waiting for accconsole_celery to die
2018-10-06 21:57:22,758 INFO waiting for accconsole_celery to die
2018-10-06 21:57:25,762 INFO waiting for accconsole_celery to die
2018-10-06 21:57:28,766 INFO waiting for accconsole_celery to die
2018-10-06 21:57:31,769 INFO waiting for accconsole_celery to die
2018-10-06 21:57:34,774 INFO waiting for accconsole_celery to die
2018-10-06 21:57:37,778 INFO waiting for accconsole_celery to die
2018-10-06 21:57:40,781 INFO waiting for accconsole_celery to die
2018-10-06 21:57:43,784 INFO waiting for accconsole_celery to die

所以我想某些进程没有正确关闭,但我似乎无法强制它退出。每次我尝试: ps aux|grep 'celery worker' 我得到了一个具有不同进程号的工作人员,如下所示:

acounsel 11386  0.0  0.0 112704   980 pts/1    S+   20:48   0:00 grep --color=auto celery worker
acounsel 11446  0.0  0.0 112704   980 pts/1    S+   20:49   0:00 grep --color=auto celery worker

所以当我试图杀死他们时,我会得到这样的回应: -bash: kill: (11446) - No such process

pkill -9 -f 'celery worker' 和更长的ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9 同样似乎没有做任何事情。我也无法运行像 celery -A django_aconsole statuscelery -A django_aconsole purge 这样的 celery 命令,它只是挂起,似乎什么也没做。

有什么想法可以关闭这些进程以便重新启动 celery?

【问题讨论】:

  • 每次关闭时,主管都会为您重新启动 celery。如果您从主管那里得到refused connection,那么您做错了什么。它是正确的端口吗?您是否尝试以 root 身份运行 supervisorctl
  • 端口肯定是对的,但是不知道如何在webfaction上以root身份运行supervisorctl。感谢您的帮助!

标签: django celery supervisord webfaction


【解决方案1】:

这是一个简单的问题; supervisord 已经停止运行,因此没有它 supervisorctl 就无法运行。只需要先运行supervisord,一切都像雨一样正常。

【讨论】: