
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 ]]>celery 配置如下
import djcelery djcelery.setup_loader() BROKER_URL = 'redis://localhost/3' CELERY_RESULT_BACKEND = 'redis://localhost/4' CELERY_ENABLE_UTC = False CELERYD_COnCURRENCY= 20 CELERYD_MAX_TASKS_PER_CHILD = 4 CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' 在执行异步任务的过程中,偶尔会出现任务卡住的情况,具体表现是任务并没有执行,但任务在一个小时后就会再次自动执行,等于是卡整整一个小时
卡任务的情况偶然出现,不规律
当任务卡住的时候,服务器上同时运行的任务并不多,少于 4 个,再次运行任务就能正常执行,查了好久不知道哪里的问题,有没有大佬可以说说排查思路?或者是遇到过类似的问题?
]]>