Supervisor installieren
sudo apt-get install supervisor
Supervisor konfigurieren
Schritt 1: Gehen Sie zum Verzeichnis /etc/supervisor/conf.d
cd /etc/supervisor/conf.d
Schritt 2: Erstellen Sie eine Worker-Datei laravel-worker.conf , die die Warteschlange abhört
sudo nano laravel-worker.conf
* Hinweis: Angenommen, Ihre Laravel-App befindet sich im /var/www/html
Verzeichnis
project folder is : /var/www/html/LaravelApp
Schritt 3: Fügen Sie den folgenden Code in die laravel-worker.conf ein und speichern Sie die Datei
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/LaravelApp/artisan queue:listen redis --queue=default --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile= /var/www/html/LaravelApp/storage/logs/worker.log
* Hinweis: Hier wird davon ausgegangen, dass Sie Redis verwenden für die Warteschlangenverbindung verwenden
in der .env-Datei QUEUE_CONNECTION=redis
command=php /var/www/html/LaravelApp/artisan queue:listen redis
Wenn Sie eine andere Verbindung verwenden, lautet die allgemeine Syntax wie folgt:
command= php [project_folder_path]/artisan queue:listen [connection_name]
[connection_name] kann eine beliebige sein sync , Datenbank , beanstalkd , sqs , redis
Schritt 4: Erstellen Sie eine Worker-Datei laravel-sched.conf , die den artisan schedule:run
Befehl alle 1 Minute (60 Sekunden) ausführt (* Sie können ihn gemäß Ihren Anforderungen ändern).
[program:laravel-schedule]
process_name=%(program_name)s_%(process_num)02d
command=/bin/bash -c 'while true; do date && php /var/www/html/LaravelApp/artisan schedule:run; sleep 60; done'
autostart=true
autorestart=true
numprocs=1
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
Schritt 5: Starten von Supervisor: Führen Sie die folgenden Befehle aus
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
*Hinweis : Wenn Sie Änderungen an einer .conf- Konfigurationsdatei vornehmen , führen Sie die obigen Befehle von Schritt 5 aus
Zusätzliche nützliche Informationen:
- um alle Supervisorctl-Prozesse zu stoppen:
sudo supervisorctl stop all
- So starten Sie den gesamten Supervisorctl-Prozess neu:
sudo supervisorctl restart all
nützliche Links:
https://laravel.com/docs/5.8/queues#running-the-queue-worker
http://supervisord.org/index.html