我正在运行芹菜机,使用redis作为代理,具有以下配置:
celery -A project.tasks:app worker -l info --concurrency=8
当检查芹菜运行过程的数量时,我看到超过8个。
我有什么遗失的东西吗?最大并发是否有限制?
此问题导致大量内存分配,并导致计算机终止。
答案 0 :(得分:1)
使用默认设置,Celery将始终启动一个进程,而不是您要求的数量。这个额外的过程是一种簿记过程,用于协调作为工作者一部分的其他过程。它与Celery的其余部分进行通信,并将任务分派给实际执行任务的进程。
切换到与" prefork"不同的池实现。默认可能会减少创建的进程数量,但这会打开新的蠕虫病毒。
答案 1 :(得分:0)
对于并发问题,我没有任何建议。
对于内存问题,您可以查看~/.redis/redis.conf
中的redis配置。您有一个maxmemory
属性可以修复任务限制......