worker_concurrency = 6
celeryd_concurrency = 6
# 每个 worker 最多执行 10KB 任务被销毁, 可以防止内存泄露
worker_max_tasks_per_child = 40
# 单个任务的最大运行时间
task_time_limit = 30 * 60
directory=/data/code/prd/bolin/src
command=/data/code/prd/bolin/env/bin/celery -A config worker --concurrency=6 -l INFO
user=pyer
autostart=true
autorestart=true
stopsignal=QUIT
stopwaitsecs=60
stopasgroup=true
killasgroup=true
1
lsdvincent 2022-06-27 09:59:29 +08:00
设置个 --autoscale=4,2 最大最小 试试?
|
2
julyclyde 2022-06-27 13:26:22 +08:00
是不是有些任务卡住了没有执行完毕啊?
|
3
longmeier90 OP @lsdvincent worker_max_tasks_per_child = 40 应该是这个配置导致的,我把它去掉就没有问题啦。这个是让它自动销毁,然后启动新的 worker ,没想到没有销毁就启动新的 worker 啦
|
4
bbbb 2022-06-28 09:51:01 +08:00 via iPhone
我用 mq+celery 的出现的是,任务过多,扭转不过来,会出现大量重复任务,导致 cpu 干满。查了资料,各种设置都没解决,最终解决办法任务不重要,停机,删除队列中所有任务。不重要的任务就没有花过多时间去纠结。刚好 celery 符合我的任务场景,是又爱又恨。
|
5
julyclyde 2022-07-01 10:52:58 +08:00
@longmeier90 那你应该研究一下为什么没有销毁啊
|