
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 那你应该研究一下为什么没有销毁啊 |