使用 Supervisor 配置 Laravel 运行队列处理器
首页 专栏 linux 文章详情
0

使用 Supervisor 配置 Laravel 运行队列处理器

小伍 发布于 5 月 1 日

配置 Supervisor

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

# [program:x] 配置: # 格式为“program”单词,加一个英文冒号,加自定义的程序名称。如 `[program:foo]`,上下文中可使用表达式 %(program_name)s 引用程序名称。 [program:laravel-worker] # 指定进程的命名规则:foo_00,foo_01... process_name=%(program_name)s_%(process_num)02d # command 必须。程序启动后执行的命令,可以是绝对命令,也可以是相对命令(在环境$PATH中搜索可执行文件)。受控的程序本身不应该是守护程序。 command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3 # Supervisor 启动时自动启动该程序 autostart=true # 指定进程挂掉时 Supervisor 自动重启进程 autorestart=true # 指定运行进程使用的用户,需要 Supervisor 以root用户运行。使用 setuid 切换用户,不会启动shell程序和改变环境变量 user=forge # 运行和监控的进程数量,进程位于laravel-worker组内,指定该值需同时设置process_name包含%(process_num)s numprocs=8 # 将 stderr 错误输出重定向到 stdout 标准输出 redirect_stderr=true # 将进程的 stdout 标准输出写入文件中,设为NONE不会创建任何日志文件。 stdout_logfile=/home/forge/app.com/worker.log

启动 Supervisor

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

# 重载守护进程的配置文件 sudo supervisorctl reread # 重新加载配置并根据需要添加/删除,并将重新启动受影响的程序 sudo supervisorctl update # 启动指定的程序组 sudo supervisorctl start laravel-worker:*

参考:http://supervisord.org/config...

linux centos supervisor lavarel
阅读 62 发布于 5 月 1 日
举报
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar
小伍
34 声望
1 粉丝
关注作者
0 条评论
得票数 最新
提交评论
avatar
小伍
34 声望
1 粉丝
关注作者
宣传栏
目录

配置 Supervisor

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

# [program:x] 配置: # 格式为“program”单词,加一个英文冒号,加自定义的程序名称。如 `[program:foo]`,上下文中可使用表达式 %(program_name)s 引用程序名称。 [program:laravel-worker] # 指定进程的命名规则:foo_00,foo_01... process_name=%(program_name)s_%(process_num)02d # command 必须。程序启动后执行的命令,可以是绝对命令,也可以是相对命令(在环境$PATH中搜索可执行文件)。受控的程序本身不应该是守护程序。 command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3 # Supervisor 启动时自动启动该程序 autostart=true # 指定进程挂掉时 Supervisor 自动重启进程 autorestart=true # 指定运行进程使用的用户,需要 Supervisor 以root用户运行。使用 setuid 切换用户,不会启动shell程序和改变环境变量 user=forge # 运行和监控的进程数量,进程位于laravel-worker组内,指定该值需同时设置process_name包含%(process_num)s numprocs=8 # 将 stderr 错误输出重定向到 stdout 标准输出 redirect_stderr=true # 将进程的 stdout 标准输出写入文件中,设为NONE不会创建任何日志文件。 stdout_logfile=/home/forge/app.com/worker.log

启动 Supervisor

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

# 重载守护进程的配置文件 sudo supervisorctl reread # 重新加载配置并根据需要添加/删除,并将重新启动受影响的程序 sudo supervisorctl update # 启动指定的程序组 sudo supervisorctl start laravel-worker:*

参考:http://supervisord.org/config...