使用Supervisor执行Laravel队列, 作为守护进程 | Killua Blog

Supervisor 是一个 Linux操作系统上的进程监控软件,它会在 queue:listenqueue:work 命令发生失败后自动重启它们。要在 Ubuntu 安装 Supervisor,可以用以下命令:
$ sudo apt-get install 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 /your_project_path/artisan queue:work --tries=3 --daemon
autostart=true
autorestart=true
user=ubuntu
numprocs=8
redirect_stderr=true
stdout_logfile=/your_project_path/storage/logs/laravel-worker.log
  • program 是进程程序名,唯一
  • command 是需要守护的命令,先手动执行看是否有异常
  • autostart 自动启动
  • autorestart 自动重启
  • user 作此操作的系统用户名
  • numprocs 进程数量
  • stdout_logfile 日志文件路径,确保路径可写权限

这个例子里的 numprocs 命令会要求 Supervisor 运行并监控 8 个 queue:work 进程,并且在它们运行失败后重新启动。当然,你必须更改 command 命令的 queue:work,以显示你所选择的队列驱动。

当这个配置文件被创建后,你需要更新 Supervisor 的设置,并用以下命令来启动该进程:

# 读取所有配置
$ sudo supervisorctl reread
# 更新配置到Supervisor
$ sudo supervisorctl update
# 停止所有任务
$ sudo supervisorctl stop all
# 开始所有任务
$ sudo supervisorctl start all

更多有关 Supervisor 的设置与使用,请参考 Supervisor 官方文档。或是使用 Laravel Forge 所提供的 Web 接口,来自动设置与管理你的 Supervisor 设置。

本文为作者原创,允许转载,转载后请以链接形式说明文章出处. 如转载但不标明来源,后果自负。

原网址: 访问
创建于: 2019-04-07 22:06:58
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论