celery启动的进程多于配置的

时间:2016-08-17 06:30:30

标签: python celery

我正在运行芹菜机,使用redis作为代理,具有以下配置:

celery -A project.tasks:app worker -l info --concurrency=8

当检查芹菜运行过程的数量时,我看到超过8个。

我有什么遗失的东西吗?最大并发是否有限制?

此问题导致大量内存分配,并导致计算机终止。

2 个答案:

答案 0 :(得分:1)

使用默认设置,Celery将始终启动一个进程,而不是您要求的数量。这个额外的过程是一种簿记过程,用于协调作为工作者一部分的其他过程。它与Celery的其余部分进行通信,并将任务分派给实际执行任务的进程。

切换到与" prefork"不同的池实现。默认可能会减少创建的进程数量,但这会打开新的蠕虫病毒。

答案 1 :(得分:0)

对于并发问题,我没有任何建议。

对于内存问题,您可以查看~/.redis/redis.conf中的redis配置。您有一个maxmemory属性可以修复任务限制......

请参阅Redis configuration