gpt4 book ai didi

python - "celeryd stop"不工作

转载 作者:行者123 更新时间:2023-12-01 05:10:53 25 4
gpt4 key购买 nike

我以一种不常见的方式使用 celery - 我在 celery 启动时创建自定义进程,该进程应该在 celery 运行时一直运行。Celery 工作人员使用此过程来完成他们的任务(不需要详细信息)。

我从命令行运行 celery ,一切正常:

celery -A celery_jobs.tasks.app worker -B --loglevel=warning

但是当我使用 celeryd 来守护 celery 时,没有办法阻止它。命令 celeryd stop 尝试停止 celery 但永远不会结束。

当我在这两种情况下检查进程树时,发现有区别 - 从命令行运行时,父进程显然是 celery 进程(以 celery 工作人员作为子进程的主进程)。终止(停止)父 celery 进程将停止所有 celery 工作人员和我的自定义进程。

但是当使用celeryd运行时,我的自定义进程有父/sbin/init - 并且调用celeryd stop不起作用 - 看起来像主 celery 进程正在等待某些内容,或者无法停止我的自定义进程,因为它不是 celery 的子进程。

我对流程了解不多,查找信息也不容易,因为我不知道应该搜索什么,所以任何提示都值得赞赏。

最佳答案

我也遇到过同样的问题。我需要一个快速的解决方案,所以我编写了这个 bash 脚本

#/bin/bash

/etc/init.d/celeryd stop
sleep 10
export PIDS=`ps -ef | grep celery |grep -v 'grep' | awk '{print $2}'`
for PID in $PIDS; do kill -9 $PID; done;

如果该过程在10秒后没有停止,那么它是一个长时间停止的候选者,所以我决定突然停止

关于python - "celeryd stop"不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com