使用supervisor运行队列、守护进程

配置 Supervisor

Supervisor 的配置文件通常位于 /etc/supervisor/conf.d 目录下。在该目录中,你可以创建任意数量的配置文件,用来控制 supervisor 将如何监控你的进程。例如,创建一个 laravel-worker.conf 文件使之启动和监控一个 queue:work 进程:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/vagrant/wwwroot/laravel6/artisan queue:work redis --queue=failMsg --sleep=3 --tries=5 
autostart=true           ;是否随supervisor启动
autorestart=true  		;是否在挂了之后重启,意外关闭后会重启,比如kill掉
user=vagrant			;用户
numprocs=8				;启动多个进程
redirect_stderr=true
stdout_logfile=/home/vagrant/supervisor-log/failmsg-work.log ;r日志

在这个例子中,numprocs 指令将指定 Supervisor 运行 8 个 queue:work 进程并对其进行监控,如果它们挂掉就自动重启它们。你应该更改 command 选项中的 queue:work redis 部分以表示你所需的队列连接,sleep代表没有新任务时候「睡眠」时间 ,tries表示出现异常时,最大尝试次数。

启动 Supervisor

配置文件创建完毕后,你就可以使用如下命令更新 Supervisor 配置并启动进程了:

sudo supervisorctl reread

sudo supervisorctl update (修改supervisor配置后执行这条)

sudo supervisorctl start laravel-worker:*

sudo supervisorctl restart laravel-worker:* (修改代码后)

查看是否生效

ps -aux | grep laravel-worker

查看所有任务状态

supervisorctl status

常用命令

supervisorctl

  • status #查看程序状态

  • stop name #关闭name程序

  • start name #启动name程序

  • restart name # 重启name程序

  • reread #读取有更新的配置文件,不会启动新添加的程序

  • update #重启配置文件修改过的程序

zed
请先登录后发表评论
  • latest comments
  • 总共0条评论