一尘不染

celery减少工序数

django

有什么办法可以限制celery的工人数量?我的服务器很小,celery总是在1个核心处理器上创建10个进程。我想将此数目限制为3个进程。


阅读 344

收藏
2020-04-03

共1个答案

一尘不染

我尝试在我的settings.py文件中将并发设置为1,将max_tasks_per_child设置为1,并同时运行3个任务。它仅以用户的身份生成1个进程,而以Celery的形式生成其他2个进程。它应该只运行1个进程,然后等待它完成,然后再运行另一个进程。

我正在使用djangocelery。

编辑 {

我通过在settings.py文件中写入CELERYD_CONCURRENCY = 1来分配并发性。但是,当我使用“ tail -f /var/log/celery/w1.log”查看celery日志文件时,我看到为并发分配的值为8。这告诉我setting.py不会更改并发。为了解决这个问题,我在“ / etc / default / celeryd”文件中添加了以下几行。

# Extra arguments to celeryd
CELERYD_OPTS="--concurrency=1"

现在,队列中的第二个任务等待,直到第一个任务完成。

}

2020-04-03