Atraso entre múltiplas execuções de processos do Supervisor

Atraso entre múltiplas execuções de processos do Supervisor

Tenho vários trabalhadores PHP e preciso definir o atraso entre a inicialização de cada um deles. Como lidar com isso?

Iniciar 1 processo / Aguardar 20 segundos / Iniciar 2º processo / Aguardar 20 segundos ... Mantenha 50 processos ativos ao mesmo tempo.

[program:get_comments]
directory=/var/www/
command=/usr/bin/php post_request.php
user=root
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)02d
numprocs=50
stdout_logfile=/var/www/worker.log
stderr_logfile=/var/www/worker.error

Responder1

Eu tive um problema semelhante em que iniciar 64 processos python rq-worker usando supervisorctl gerava alertas de CPU e RAM a cada reinicialização. O que fiz foi o seguinte:

command=/bin/bash -c "sleep %(process_num)02d && virtualenv/bin/python3 manage.py rqworker --name %(program_name)s_my-rq-worker_%(process_num)02d default low"

Basicamente, antes de executar o comando python, durmo por N segundos, onde N é o número do processo, o que basicamente significa que o supervisor iniciará um processo rq-worker a cada segundo.

No seu caso, o seguinte deve funcionar:

command=/bin/bash -c "sleep $((%(process_num)01d + 20)) && /usr/bin/php post_request.php" 

Observe que o primeiro processo também começará após 20 segundos.

informação relacionada