gpt4 book ai didi

celery : cannot shutdown celery due to PID changes

转载 作者:行者123 更新时间:2023-12-04 16:49:36 26 4
gpt4 key购买 nike

我正在使用 Cerely 来管理我的 django 项目中的延迟任务。

当我按照 manual 中的建议尝试关闭 celery 时遇到问题.

>> ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
kill: No such process
>> ps auxww | grep 'celery worker' | awk '{print $2}
28630
>> ps auxww | grep 'celery worker' | awk '{print $2}
28633

PID不断变化,很难发出杀伤信号。

我该如何解决这个问题?提前致谢。


[更新]

django settings.py

import djcelery

djcelery.setup_loader()
BROKER_URL = 'amqp://guest:guest@localhost:5672/' # Using RabbitMQ
CELERYD_MAX_TASKS_PER_CHILD = 1

PID 检查(重启后)

>> ps auxww | grep 'celery worker' | awk '{print $2}'
3243
>> manage.py celery worker --loglevel=info
celery@{some id value}.... ready
>> ps auxww | grep 'celery worker' | awk '{print $2}'
3285
3293
3296
>> ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
kill: No such process
>> ps auxww | grep 'celery worker' | awk '{print $2}'
3321
>> ps auxww | grep 'celery worker' | awk '{print $2}'
3324

问题

  • 即使重新启动,至少还有一个 celery worker。并且其PID不断变化。
  • Celery 守护进程同时执行两个 worker。我怎样才能将其固定给一名 worker ?

最佳答案

它正按照您对 CELERYD_MAX_TASKS_PER_CHILD 的要求进行操作设置:

Maximum number of tasks a pool worker process can execute before it’s replaced with a new one.

显然你想运行一个工作进程,但它是由不同的设置控制的,即 CELERYD_CONCURRENCY .

所以,替换

CELERYD_MAX_TASKS_PER_CHILD = 1

CELERYD_CONCURRENCY = 1

关于 celery : cannot shutdown celery due to PID changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798866/

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