当前位置: 首页 > news >正文

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

1、安装MQ环境

sudo apt install -y rabbitmq-server
sudo systemctl enable rabbitmq-server --now

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

composer require vladimir-yuldashev/laravel-queue-rabbitmq

3、配置 .env

QUEUE_CONNECTION=rabbitmq
RABBITMQ_HOST=127.0.0.1
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest

4、创建Job

php artisan make:job CallApiJob

5、安装 Supervisor

sudo apt update
sudo apt install supervisor

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

[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配置加入以下配置:

[include]
files = /etc/supervisor/conf.d/*.conf

8、重载 Supervisor 配置并启动

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 文件
nano .git/hooks/post-merge

        在文件中添加以下内容:

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

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

http://www.lryc.cn/news/536699.html

相关文章:

  • 力扣100. 相同的树(利用分解思想解决)
  • 全面了解HTTP(一)
  • element-ui时间组件同一个月内选择/30天内选择
  • NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
  • 深入浅出Java反射:掌握动态编程的艺术
  • 大模型被偷家?CNN结合多模态!
  • UI自动化测试的优缺点?
  • 在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库
  • 机器视觉中的3d和2d的区别
  • exr 格式下 全景图(经纬图、panorama)转 cubemap
  • STM32 ADC介绍(硬件原理篇)
  • snort3.0 获取注册规则(19000多条)
  • 【GitHub】装修个人主页
  • 名词解释:npm,cnpm,yarn,vite,vue,electron
  • XMOS的多项音频技术创新将大模型与边缘AI应用密切联系形成生态化合
  • 九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表
  • 大数据治理:构建数据驱动的未来基石
  • 常见的几种设计模式(详细)——应用场景和实现方式
  • SonarQube
  • Nginx 之Rewrite 使用详解
  • 注册Gmail如何跳过手机验证环节?
  • WordPress自助建站全攻略
  • TreeSet(单列集合)
  • Elasticsearch:同义词在 RAG 中重要吗?
  • Docker安装分布式vLLM
  • 可视化实操记录(自用)
  • 二叉树的遍历方式和子问题思路
  • 运用Deek Seeker协助数据分析
  • 服务器之连接简介(Detailed Explanation of Server Connection)
  • 低空经济:开启未来空中生活的全新蓝海