supervisornão é cron!

supervisornão é cron!

Estou tentando executar o comando abaixo em segundo plano usando supervisord:

php /home/instacheeta/artisan queue:work --timeout=120

Após instalar o serviço supervisor em meu servidor, definir sua configuração e iniciá-lo, não há nenhuma alteração no banco de dados para indicar que o supervisor está executando a aplicação PHP.

Configuração do meu supervisor:

[program:instacheeta]
process_name=%(program_name)s_%(process_num)s
command=php /home/instacheeta/artisan queue:work --timeout=120
autostart=true
autorestart=true
numprocs=1
redirect_stderr=true
stdout_logfile=/home/instacheeta/worker.log

queue:workdispara após a execução cronjoba cada minuto e funciona até terminar.

cronjobfunciona bem; Verifiquei isso em meu banco de dados para verificar se novos dados são armazenados a cada minuto. Infelizmente, o supervisor parece não executar o comando definido.

Não recebo nenhum erro em worker.log. Outras informações para solução de problemas:

[root@host instacheeta]# ps aux|grep supervisor
root      3267  0.0  0.2 219784 12992 ?        Ss   11:47   0:02 /usr/bin/python /usr/bin/supervisord
root     18279  0.0  0.0 112680   948 pts/0    S+   14:38   0:00 grep --color=auto supervisor

Falha ao adicionar programa a supervisorctl:

[root@host instacheeta]# supervisorctl add instacheeta
ERROR: no such process/group: instacheeta

situação de supervisor:

[root@host instacheeta]# supervisorctl status
[root@host instacheeta]#

Responder1

A configuração do supervisor precisa ser recarregada.

Existem dois métodos para isso:

  1. Reinicie o supervisorserviço usando a serviceferramenta ( service supervisor restart). Isso chamaria todos os processos supervisionados, mas como atualmente nenhum desses processos está em execução, isso não é um problema.

  2. Peça ao supervisordaemon para recarregar dinamicamente sua configuração a partir dos arquivos de configuração. Execute supervisorctl rereadseguido de supervisorctl updatepara atualizar a configuração. Agora você pode usar startpara iniciar o programa ou statusvisualizar seu status.


supervisornão é cron!

Na sua pergunta você afirma:

cronjobfunciona bem; Verifiquei isso em meu banco de dados para verificar se novos dados são armazenados a cada minuto. Infelizmente, o supervisor parece não executar o comando definido.

Esteja ciente de que se você anteriormente tinha um cronjob que invocava o comando em um ciclo regular, supervisornão fará isso sem intervenção externa ou a menos que o programa morra após terminar de funcionar. supervisor normalmente tem como objetivo invocar binários, fornecer um serviço e permanecer em execução depois de iniciado.

Eu recomendaria alterar o aplicativo para que ele seja iniciado uma vez e tenha uma programação interna na qual execute todas as ações necessárias no banco de dados.

informação relacionada