美文网首页
使用 Supervisor 管理 Laravel 队列和 Hor

使用 Supervisor 管理 Laravel 队列和 Hor

作者: Hesunfly | 来源:发表于2019-12-23 12:40 被阅读0次

    Supervisor 是 unix 系统上用于监控和管理进程的工具,我们在运行 Laravel 开发的应用时,可能会用到队列和 Horizon。但是执行它们的命令有个缺陷,就是关闭终端后,将停止运行,这显然是不合理的,所以我们需要使用 Supervisor 来管理它们。接下来介绍一下实现的步骤:

安装 Supervisor

Supervisor 的官方文档,这里有详细的安装和使用说明,我使用的 ubuntu 系统,使用 apt-get 可以直接安装。

# ubuntu
$ sudo apt-get install supervisor -y
# 通用的安装方式(需要先安装 pip)
$ pip install supervisor

配置使用

Supervisor 的配置文件在 /etc/supervisor 目录下,supervisord.conf 是主配置文件,我们需要在同级目录下的 conf.d 目录中创建配置文件。

cd /etc/supervisor/conf.d

vim laravel-worker.conf

配置内容

# 使用program 后的参数区分不同的应用
[program: larave-worker-queue]   # 队列应用
# 运行的命令
command=php /www/laravel/artisan queue:listen
# 脚本运行的用户身份
user=root
process_name=%(program_name)s_%(process_num)d
# 应用目录
directory=/www/laravel
# 日志目录
stdout_logfile=/www/laravel/storage/logs/supervisord.log
redirect_stderr=true
numprocs=1

[program: larave-worker-horizon]  # horizon 应用
command=php /www/laravel/artisan horizon
user=root
autostart=true
autorestart=true
process_name=%(program_name)s_%(process_num)d
directory=/www/laravel
stdout_logfile=/www/laravel/storage/logs/supervisord.log
redirect_stderr=true
numprocs=1

运行

//启动
sudo supervisord -c /etc/supervisor/supervisord.conf
// 查看运行状态
sudo supervisorctl status

运行成功的话,队列和 Horizon 就可以正常使用了!如果需要添加应用需要先 kill掉 supervisor,然后重新启动即可。

文章同步发布在我的个人博客中,传送门Hesunfly Blog

相关文章

网友评论

      本文标题:使用 Supervisor 管理 Laravel 队列和 Hor

      本文链接:https://www.haomeiwen.com/subject/treznctx.html