shared_task results python concurrency celery celeryd

results - python celery rate limit



¿El número de procesos apicales depende de la configuración de concurrencia? (1)

Estamos ejecutando Apio detrás de Supervisor y comenzamos con

celeryd --events --loglevel=INFO --concurrency=2

Esto, sin embargo, crea un gráfico de proceso que tiene hasta tres capas de profundidad y contiene hasta 7 procesos apilados (el supervisor genera un apio, lo que genera muchos otros, que nuevamente generan procesos). Nuestra máquina tiene dos núcleos de CPU.

¿Todos estos procesos están trabajando en las tareas? ¿Tal vez algunos de ellos solo son grupos de trabajadores? ¿Cómo está conectada la configuración de concurrencia a la cantidad de procesos generados?


No debe tener 7 procesos si --concurrency es 2.

Los procesos reales iniciados son:

  • El proceso principal del consumidor

    Los delegados trabajan para el grupo de trabajadores

  • El grupo de trabajadores (este es el número que decide la --concurrency )

Entonces eso es 3 procesos con una concurrencia de dos.

Además, se inicia un proceso muy liviano para limpiar semáforos si force_execv está habilitado (que es por defecto si está utilizando algún otro medio de transporte que no sea redis o rabbitmq).

TENGA EN CUENTA que, en algunos casos, las listas de procesos también incluyen subprocesos. el trabajador puede iniciar varios subprocesos si usa transportes distintos de rabbitmq / redis, incluido un subproceso de Mediator que siempre se inicia a menos que CELERY_DISABLE_RATE_LIMITS esté habilitado.