supervisorist nicht cron!

supervisorist nicht cron!

Ich versuche, den folgenden Befehl im Hintergrund auszuführen mit supervisord:

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

Nachdem ich den Supervisor-Dienst auf meinem Server installiert, seine Konfiguration definiert und gestartet habe, gibt es in der Datenbank keine Änderung, die darauf hinweist, dass der Supervisor die PHP-Anwendung ausführt.

Meine Supervisor-Konfiguration:

[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:workwird nach jeder Ausführung ausgelöst cronjobund arbeitet bis zum Ende.

cronjobfunktioniert einwandfrei; ich habe das in meiner Datenbank überprüft, um sicherzustellen, dass jede Minute neue Daten gespeichert werden. Leider scheint der Supervisor den definierten Befehl nicht auszuführen.

Ich erhalte keine Fehlermeldung worker.log. Weitere Informationen zur Fehlerbehebung:

[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

Das Hinzufügen des Programms zu supervisorctl: ist fehlgeschlagen.

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

Supervisor-Status:

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

Antwort1

Die Supervisor-Konfiguration muss neu geladen werden.

Hierfür gibt es zwei Methoden:

  1. Starten Sie den supervisorDienst mit dem serviceTool ( service supervisor restart) neu. Dadurch werden alle überwachten Prozesse aufgerufen. Da Sie derzeit jedoch keine derartigen Prozesse ausführen, stellt dies kein Problem dar.

  2. Fordern Sie den supervisorDaemon auf, seine Konfiguration dynamisch aus den Konfigurationsdateien neu zu laden. Führen Sie „Aus“ supervisorctl reread, gefolgt von „ supervisorctl update, um die Konfiguration zu aktualisieren“ aus. Sie können nun startdas Programm starten oder statusseinen Status anzeigen.


supervisorist nicht cron!

In Ihrer Frage geben Sie an:

cronjobfunktioniert einwandfrei; ich habe das in meiner Datenbank überprüft, um sicherzustellen, dass jede Minute neue Daten gespeichert werden. Leider scheint der Supervisor den definierten Befehl nicht auszuführen.

Beachten Sie, dass, wenn Sie zuvor einen Cronjob hatten, der den Befehl in regelmäßigen Abständen aufgerufen hat, supervisordies nicht ohne externe Intervention geschieht oder es sei denn, das Programm wird nach Abschluss der Arbeit beendet. Der Supervisor ist normalerweise dafür gedacht, Binärdateien aufzurufen, einen Dienst bereitzustellen und nach dem Start weiter ausgeführt zu werden.

Ich würde empfehlen, die Anwendung so zu ändern, dass sie einmal gestartet wird und über einen internen Zeitplan verfügt, nach dem sie alle erforderlichen Datenbankaktionen ausführt.

verwandte Informationen