centos7 + supervisor实现laravel队列常驻进程流程步骤

2023-06-01 00:00:00 队列 进程 常驻

在centos7系统中使用supervisor进程管理工具来管理保持laravel任务进程状态

一、yum安装supervisor

yum install epel-release
yum install -y supervisor


二、配置supervisor,创建配置文件:

在/etc/supervisord.d/目录下输入

vim laravel-horizon.conf

创建配置文件laravel-horizon.conf:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /www/server/php/81/etc/php-cli.ini artisan horizon sqs --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app.com/worker.log
stopwaitsecs=3600


注意点:

1、因为我安装了laravel\horizon用于可视化队列,所以没有用queue命令

2、centos7的supervisord配置文件*.conf放在/etc/supervisord.d/下

3、Ubuntu的是/etc/supervisor/conf.d,用于配置单个进程组或者进程的个性化配置

4、确保stopwaitsecs的值大于运行时间最长的作业所消耗的秒数,否则,Supervisor可能会在作业完         成处理之前将其终止。

ps:

分享个queue命令的例子,作参考

// 在/etc/supervisor/conf.d/路径下建立一个 foo.conf 文件,存放一个组名为foo的配置
[group:foo] // 建立一个进程组
programs=bar // 进程组包括的进程,多个进程用逗号隔开

[program:bar] // 建立一个进程
process_name=%(program_name)s_%(process_num)02d // 启动的进程名 : bar_00 bar_01 ...
command=php /data/www/laravel-path/artisan queue:work --sleep=3 --tries=3 // 执行的进程命令
autostart=true // 随supervisor启动自动启动
autorestart=true
user=deploy // 执行进程的用户
numprocs=8 // 进程数
redirect_stderr=true
stdout_logfile=/data/logs/foo.log
//启动supervisor: 
supervisord -c /etc/supervisord.conf
//进入supervisor操作台:
supervisorctl
//读取新增加的配置
supervisorctl> reread 
supervisorctl> update
//启动foo组下的所有进程
supervisorctl> start foo:* 


三、启动supervisor

运行以下命令,就可以安心关闭SSH了

#开机自启动
systemctl enable supervisord

#启动supervisord服务
systemctl start supervisord

# 查看supervisord服务状态
systemctl status supervisord

# 查看是否存在supervisord进程
ps -ef|grep supervisord


备注:

配置文件里的/www/server/php/81/etc/php-cli.ini artisan horizon就是你想要常驻运行的命令路径;

如果你不知道完整路径是什么,你可以先运行 php artisan xxx 然后 ctrl+z,然后再输入jobs就能看到完整路径了,复制该路径到conf文件里就可以了


supervisor的配置说明文档:

https://www.rddoc.com/doc/Supervisor/3.3.1/zh/configuration/#supervisord-section-settings

相关文章