当前位置: 首页 > 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,从而重启队列进程并使其使用最新代码。

相关文章:

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_CONNECTIONrabbitmq RABBITMQ_HOST12…...

力扣100. 相同的树(利用分解思想解决)

Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同,而此要求可以利用问题分解的思想解决,即判断当前节点的左右子树是否完全相同,而在二叉树问题分解的一般题目中均会带有返回值&#xff…...

全面了解HTTP(一)

全面了解HTTP(二)-CSDN博客 web及网络基础 使用HTTP协议访问web: HTTP: 网络基础TCP/IP 与HTTP关系密切的协议:IP,TCP,DNS 负责域名解析的DNS服务 各种协议与HTTP协议的关系 URI和URL 简单的HTTP协议 HTTP协议用于客户端和服…...

element-ui时间组件同一个月内选择/30天内选择

element-ui时间组件同一个月内选择/30天内选择 同一个月 <el-date-picker v-model"time" type"datetimerange"range-separator"至" start-placeholder"开始时间"value-format"timestamp" :picker-options"pickerO…...

NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)

循环嵌套 循环嵌套的使⽤ while &#xff0c; do while &#xff0c; for &#xff0c;这三种循环往往会嵌套在⼀起才能更好的解决问题&#xff0c;就是我们所说的&#xff1a;循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如&#xff1a; 写⼀个代码&#xff0c;打印⼀个乘法⼝…...

深入浅出Java反射:掌握动态编程的艺术

小程一言反射何为反射反射核心类反射的基本使用获取Class对象创建对象调用方法访问字段 示例程序应用场景优缺点分析优点缺点 注意 再深入一些反射与泛型反射与注解反射与动态代理反射与类加载器 结语 小程一言 本专栏是对Java知识点的总结。在学习Java的过程中&#xff0c;学习…...

大模型被偷家?CNN结合多模态!

2025深度学习发论文&模型涨点之—— CNN多模态 卷积神经网络是一种特殊类型的神经网络&#xff0c;其主要结构包括卷积层、池化层、全连接层和输出层。卷积层通过卷积操作学习图像的特征&#xff0c;池化层通过下采样操作减少参数数量&#xff0c;全连接层和输出层通过分类…...

UI自动化测试的优缺点?

优点 • 提高测试效率&#xff1a;可以快速地重复执行测试用例。例如&#xff0c;对于一个有大量表单需要验证的网页应用&#xff0c;自动化测试可以在短时间内完成多次输入检查&#xff0c;而手动测试则会花费大量时间。 • 保证测试一致性&#xff1a;每次执行测试的步骤和…...

在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库

在 Kubernetes (K8s) 环境中&#xff0c;备份 PostgreSQL 数据库有一些特殊的考虑&#xff0c;因为数据库通常运行在容器中&#xff0c;并且数据存储在卷&#xff08;如 PersistentVolume&#xff09;中。你可以通过几种方式在外部备份 PostgreSQL 数据库&#xff0c;下面是一些…...

机器视觉中的3d和2d的区别

在机器视觉中&#xff0c;3D和2D的主要区别体现在数据的维度、处理方式及应用场景上。以下是具体对比&#xff1a; 数据维度 2D视觉 &#xff1a;处理二维图像&#xff0c;仅包含宽度和高度信息&#xff0c;通常以像素矩阵表示。 3D视觉 &#xff1a;处理三维数据&#xff0c;…...

exr 格式下 全景图(经纬图、panorama)转 cubemap

先上效果 &#xff08;X, -X, Y, -Y, Z, -Z&#xff09; 下载 exr 经纬图 笔者用的这张&#xff1a;https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky 使用 Openexr 的 exrenvmap 工具 下载 我 build 了一份 3.3.2 版本的&#xff0c;免积分下载。 https:/…...

STM32 ADC介绍(硬件原理篇)

目录 背景 AD转换器 采样与保持 量化 编码 AD转换器转换原理 DA转换原理 AD转换原理 背景 在数字系统的广泛应用中&#xff0c;用数字系统处理模拟量的情况十分普遍&#xff0c;因此引入了模拟信号和数字信号的接口问题。为了解决这一问题&#xff0c;首先利用模数转换…...

snort3.0 获取注册规则(19000多条)

面对生活中的手机、电脑网络监控&#xff0c;很多人都是束手无策的&#xff0c;只不过雁过留声风过留痕&#xff0c;黑客路过就会留下入侵痕迹&#xff0c;比如手机没玩的时候&#xff0c;流量异常的增多&#xff0c;并且一直和某一个IP地址通信很频繁&#xff0c;可能是黑客正…...

【GitHub】装修个人主页

持续更新各种好文&#xff0c;长期更新技能手册&#xff0c;建议关注收藏点赞&#xff01; 创建仓库&#xff0c;仓库名自己用户名 权限&#xff1a;public 勾选add a README file修改README.md 这里都是运用markdown语法&#xff0c;以及html标签编写的&#xff0c;可以自行修…...

名词解释:npm,cnpm,yarn,vite,vue,electron

1. npm (Node Package Manager) 读音: “N-P-M” 或者直接读作 “npm”。 npm 是 Node.js 的官方包管理器&#xff0c;用于安装、发布和管理 JavaScript 软件包。它允许开发者轻松地共享代码&#xff0c;并且可以通过命令行工具来管理依赖关系。通过 npm init 命令可以交互式…...

XMOS的多项音频技术创新将大模型与边缘AI应用密切联系形成生态化合

2025蛇年春节&#xff0c;DeepSeek大语言模型以超低的训练成本震撼全球&#xff0c;预示着大模型技术将以更快的脚步全面走进我们的工作和生活&#xff0c;同时也促进了能够连通各种大模型和应用场景的智能终端将加速演进。语音作为人类与机器最常用的互动沟通媒体&#xff0c;…...

九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表

文章目录 前言一、引入依赖二、创建一个light-db_1备用数据库三、配置文件 application-dev.yml四、创建shardingsphere-config.yml完整项目结构 五、测试总结 前言 在现代化微服务架构中&#xff0c;随着数据量的不断增长&#xff0c;单一数据库已难以满足高可用性、扩展性和…...

大数据治理:构建数据驱动的未来基石

一、大数据治理的定义与核心价值 在大数据战略从顶层设计到底层实现的落地过程中&#xff0c;数据治理是基础&#xff0c;技术是承载&#xff0c;分析是手段&#xff0c;应用是目的。与传统数据管理不同&#xff0c;数据治理更侧重于制定行业级制度规范&#xff0c;通过建立数…...

常见的几种设计模式(详细)——应用场景和实现方式

文章目录 &#x1f3af;单例模式应用实现 &#x1f3ed;工厂模式应用实现 ❓策略模式应用实现 &#x1f9d1;‍⚖️代理模式应用实现 &#x1f50d;观察者模式&#xff08;发布订阅模式&#xff09;应用实现 &#x1f9f0;装饰器模式应用实现 &#x1f4f0;模版方法模式应用实现…...

SonarQube

不同版本的sonarqube需要不同版本的数据库、jdk环境。这个看文档然后确定要求 &#xff08;有时候文档里标注的系统要求是不行的。比如要求内存2G&#xff0c;但是实际上是不够的&#xff0c;要注意&#xff09; 我安装的&#xff1a; 官方文档 Prerequisites and overview…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

2025-05-08-deepseek本地化部署

title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek&#xff1a;小白也能轻松搞定&#xff01; 如何给本地部署的 DeepSeek 投喂数据&#xff0c;让他更懂你 [实验目的]&#xff1a;理解系统架构与原…...