安装主管
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:启动Supervisor:运行以下命令
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
*注意:每当您对任何配置.conf文件进行更改时,请运行上述第5步命令
额外有用的信息:
- 停止所有主管程序:
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