安装主管
sudo apt-get install supervisor
配置主管
第 1 步:转到/etc/supervisor/conf.d目录
cd /etc/supervisor/conf.d
第 2 步:创建一个工作文件laravel-worker.conf来监听队列
sudo nano laravel-worker.conf
*注意:现在假设您的 laravel 应用程序在/var/www/html
目录中
project folder is : /var/www/html/LaravelApp
第 3 步:将以下代码粘贴到laravel-worker.conf 中并保存文件
[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
*注意:这里假设您使用redis进行队列连接
在 .env 文件中QUEUE_CONNECTION=redis
command=php /var/www/html/LaravelApp/artisan queue:listen redis
如果您使用其他连接,则一般语法为:
command= php [project_folder_path]/artisan queue:listen [connection_name]
[connection_name] 可以是sync、database、beanstalkd、sqs、redis中的任何一个
第 4 步:创建一个工作文件laravel-schedule.conf,它将每 1 分钟(60 秒)artisan schedule:run
运行一次命令(*您可以根据需要更改它)
[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
第 5 步:启动主管:运行以下命令
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
*注意:每当您对任何配置.conf文件进行更改时,请运行上述步骤 5的命令
额外有用的信息:
- 停止所有 supervisorctl 进程:
sudo supervisorctl stop all
- 重新启动所有 supervisorctl 进程:
sudo supervisorctl restart all
有用的链接:
https://laravel.com/docs/5.8/queues#running-the-queue-worker
http://supervisord.org/index.html