Supervisor 管理 yii2-queue 的 worker 进程

10-14 16:00 字数 1868 阅读 9 已编辑

因为公司某块业务使用了消息队列(yii2-queue),今天产品反馈说业务延迟特别严重,所以怀疑是消息队列的问题,上线一看消息队列里有5000条任务在排队,以前只启用了一个worker进程,看来一个消费进程跑不及了,并且消息队列服务器的cpu和内存都是空闲的状态,所以想着多开几个worker来消费,以前一个worker进程的时候用crontab就管理了,现在多个进程这样肯定不太好,Yii官方推荐使用Supervisor

这里记录一下安装配置过程。

首先安装EPEL源

yum install epel-release

然后安装supervisor

yum install -y supervisor

设置supervisor开机启动

systemctl enable supervisord

启动supervisor

systemctl start supervisord

查看supervisor状态

systemctl status supervisord # 查看supervisord服务状态
ps -ef|grep supervisord # 查看是否存在supervisord进程

然后为我们的yii2-queue编写一个配置文件,位置位于 /etc/supervisord.d/

cd /etc/supervisord.d/
vim yiiQueue.ini

yiiQueue.ini内容如下

[program:yii-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /你的yii项目根目录/yii queue/listen --verbose=1 --color=0
autostart=true
autorestart=true
user=www
numprocs=5
redirect_stderr=true
stdout_logfile=/var/log/yii-queue-worker.log

配置项解释

process_name=: 进程名称 command=; 运行程序的命令 directory=; 命令执行的目录 autorestart=; 程序意外退出是否自动重启 autostart=; 是否自动启动 stderr_logfile=; 错误日志文件 stdout_logfile=; 输出日志文件 user=; 进程执行的用户身份 numprocs=;进程数量 startsecs=; 自动重启间隔(S)

编写好之后保存退出,每次修改、新增、删除配置文件后,需要通知supervisor更新一下,加载新的配置

supervisorctl update

然后启动配置中的程序

supervisorctl reload

完事!最后看一下supervisor的状态

supervisorctl status

supervisor的状态

可以看到我们的5个进程全部启动成功并且是running状态。要是实在不放心,可以看一下日志文件有没有正常再跑或者ps命令看一下有没有5个进程。

tail -f  /var/log/yii-queue-worker.log

运行日志


附一些supervisor常用命令

启动supervisord管理的所有进程

supervisorctl start all

停止supervisord管理的所有进程

supervisorctl stop all

启动supervisord管理的某一个特定进程

supervisorctl start program-name // program-name为[program:xx]中的xx

停止supervisord管理的某一个特定进程

supervisorctl stop program-name  // program-name为[program:xx]中的xx

重启所有进程或所有进程

supervisorctl restart all  // 重启所有
supervisorctl reatart program-name // 重启某一进程,program-name为[program:xx]中的xx

查看supervisord当前管理的所有进程的状态

supervisorctl status

参考链接 https://blog.csdn.net/freedom_fd/article/details/106387619

2人点赞>
关注 收藏 改进 举报
1 条评论
排序方式 时间 投票
叶秋

谢谢,学到了。

请登录后发表评论
站长 @ 十七度
文章
352
粉丝
23
喜欢
179
收藏
23
排名 : 1
访问 : 75.68万
私信