Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程

1、安装MQ环境

bash 复制代码
sudo apt install -y rabbitmq-server
sudo systemctl enable rabbitmq-server --now

2、进入laravel项目,安装MQ队列驱动

bash 复制代码
composer require vladimir-yuldashev/laravel-queue-rabbitmq

3、配置.env

bash 复制代码
QUEUE_CONNECTION=rabbitmq
RABBITMQ_HOST=127.0.0.1
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest

4、创建Job

bash 复制代码
php artisan make:job CallApiJob

5、安装 Supervisor

bash 复制代码
sudo apt update
sudo apt install supervisor

6、创建 Laravel 队列工作进程配置文件,在 /etc/supervisor/conf.d/ 目录下创建一个配置文件,例如 laravel-queue.conf,内容如下:

bash 复制代码
[program:laravel-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/artisan queue:work --queue=ApiCoupons --tries=3 --daemon
autostart=true
autorestart=true
numprocs=2
redirect_stderr=true
stdout_logfile=/dev/null

7、修改supervisor.conf配置加入以下配置:

bash 复制代码
[include]
files = /etc/supervisor/conf.d/*.conf

8、重载 Supervisor 配置并启动

bash 复制代码
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-queue:*

9. 使用 Git Hook 自动重启

如果你在项目中使用 Git 进行版本控制,你可以利用 Git hooks(例如 post-merge 或 post-checkout)来触发 php artisan queue:restart 命令。

配置方法:

  • 创建 Git hook 脚本:

在你的项目根目录下,进入 .git/hooks 目录,创建一个 post-merge 或 post-checkout 脚本。

  • 编辑 post-merge文件:
bash 复制代码
nano .git/hooks/post-merge

在文件中添加以下内容:

bash 复制代码
#!/bin/bash
php /path/to/artisan queue:restart
  • 给 post-merge文件执行权限:
bash 复制代码
chmod +x .git/hooks/post-merge

这样,当你执行 git pull 或 git checkout 后,Git 会自动执行 php artisan queue:restart,从而重启队列进程并使其使用最新代码。

相关推荐
_upupup20 分钟前
包管理器和vim
linux·服务器
一颗小树x26 分钟前
NVIDIA 驱动故障排查实录:内核升级导致 nvidia-smi 失效
linux·服务器·nvidia驱动·启动失败·内核升级
_smart_boy__36 分钟前
I.MX6U开发板Uboot无法ping Ubuntu问题解决方案(二)
linux·运维·ubuntu
DianSan_ERP1 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_decoder_get_parse_state调用流程与实战(四十九)
linux·音视频·gstreamer音视频·gstreamer音视频进阶
~光~~1 小时前
【嵌入式Linux学习】GFP_NOIO / GFP_NOFS(Linux 内核 gfp 分配标志)
linux·运维·学习
坤坤子吖1 小时前
ELF加载、动态链接、GOT与PLT
linux·笔记·学习
android阿杜2 小时前
Ubuntu 26.04 LTS 系统每次重启后屏幕亮度都会增加一点
linux·运维·ubuntu
懿路向前2 小时前
【唤醒实战笔记】2026-09-29 | 智能体提示词迭代史(v1 → v8)
linux·笔记·算法
路溪非溪3 小时前
Linux下Shell脚本基础知识(二)
linux·运维·服务器