You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一服务器通过Supervisor配置多个Laravel Worker?

多Laravel项目的Supervisor队列Worker配置方案

核心方案是为每个Laravel项目单独定义一个独立的Supervisor Program配置块,每个块使用唯一的标识名称,避免进程冲突。以下是具体配置示例和注意事项:

配置示例

项目app2.com的Worker配置

[program:laravel-worker-app2]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app2.com/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app2.com/worker.log

项目app3.com的Worker配置

[program:laravel-worker-app3]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app3.com/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app3.com/worker.log

关键配置改动点

  • 唯一Program名称:每个[program:]后的标识必须唯一(比如用项目域名后缀区分),确保Supervisor能识别不同项目的Worker进程
  • 项目路径匹配:command中的artisan文件路径、stdout_logfile中的日志路径,都要对应到当前项目的实际目录
  • 独立日志文件:每个项目的Worker日志单独存放,避免日志混乱,方便后续排查问题

实用操作命令

配置完成后,执行以下命令让Supervisor加载新配置:

sudo supervisorctl reread
sudo supervisorctl update

单独管理某个项目的Worker进程:

# 启动app2的所有Worker进程
sudo supervisorctl start laravel-worker-app2:*
# 重启app3的所有Worker进程
sudo supervisorctl restart laravel-worker-app3:*
# 查看所有Worker进程状态
sudo supervisorctl status

内容的提问来源于stack exchange,提问作者JohnDoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 21:59:56