实现 think/queue 日志分离

news/2024/11/14 23:36:34/

当我们使用think/queue包含了比较多的不同队列,日志会写到runtime/log目录下,合并写入的,不好排查问题,我们遇到一个比较严重的就是用了不同用户来执行,权限冲突了,导致部分队列执行不了.

为了解决以上问题,本来希望通过Log::init设置不同日志路径的,但是本地测试没生效,于是用了一下方案:

1. event中AppInit添加QueueLog

php"><?php
// 事件定义文件use app\common\event\QueueLog;return ['bind'      => [],'listen'    => ['AppInit'  => [QueueLog::class],'HttpRun'  => [],'HttpEnd'  => [],'LogLevel' => [],'LogWrite' => [],],'subscribe' => [],
];

2. 创建QueueLog事件

php"><?php
namespace app\common\event;use think\App;
use think\facade\Request;class QueueLog
{public function handle(App $app): bool{if (!Request::isCli()) {return true;}$args = (array) $_SERVER['argv'];foreach ($args as $arg) {if (str_starts_with($arg, '--queue=')) {$queueName = substr($arg, 8);$app->setRuntimePath($app->getRuntimePath() . '/' . 'queue' . '-' . $queueName . '/');break;}}return true;}
}

这样的话,不同队列的日志就写到不同的路径下了


http://www.ppmy.cn/news/1547067.html

相关文章

Prometheus面试内容整理-Metrics 类型

在 Prometheus 中,指标(Metrics)是核心数据单位,用于描述系统的各种状态和性能指标。Prometheus 将这些指标分为四种主要类型,每种类型适用于不同的监控场景。理解这四种指标类型有助于我们准确采集、分析和理解监控数据。 Counter(计数器) 1. 概念: Counter 是一种只…

Docker compose部署portainer

整个工具的代码都在Gitee或者Github地址内 gitee&#xff1a;solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb github&#xff1a;GitHub - ZeroNing/solomon-parent: 这个项目主要是…

Spring Boot编程训练系统:开发与部署

6系统测试 6.1概念和意义 测试的定义&#xff1a;程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为&#xff1a; 目的&#xff1a;发现程序的错误&#xff1b; 任务&#xff1a;通过在计算机上执行程序&#xff0c;暴露程序中潜在的错误。 另一个…

类加载过程详解

类的生命周期 类从被加载到虚拟机内存中开始到卸载出内存为止&#xff0c;它的整个生命周期可以简单概括为 7 个阶段&#xff1a;加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08…

XML 编辑器:功能、选择与使用技巧

XML 编辑器&#xff1a;功能、选择与使用技巧 引言 XML&#xff08;可扩展标记语言&#xff09;是一种用于存储和传输数据的标记语言。由于其结构化和可扩展的特性&#xff0c;XML被广泛应用于各种领域&#xff0c;如网页开发、数据交换和配置文件等。在使用XML时&#xff0c…

MySql数据库Group分组内排序取数据

文章目录 业务场景 业务场景 生产中遇到一个需求&#xff0c;需要统计在某段时间内指定客户的财务收款信息。 比如统计A客户10月1日~11月1日之间的财务应数据&#xff0c;在统计汇总的时候&#xff0c;需要计算A用户在10月1号前的结余信息&#xff0c;这就需要查询10月1日前这…

anzocapital 昂首资本:外汇机器人趋势判断秘籍

再盲目交易而不借助像 anzocapital 昂首资本所了解的外汇机器人趋势判断方法&#xff0c;投资者在外汇市场将面临亏损的风险&#xff0c;anzocapital 昂首资本深知交易策略的重要性&#xff0c;就像外汇机器人确定趋势方向的方法&#xff0c;对投资者有着非凡的意义。 在外汇交…

Go 语言已立足主流,编程语言排行榜24 年 11 月

Go语言概述 Go语言&#xff0c;简称Golang&#xff0c;是由Google的Robert Griesemer、Rob Pike和Ken Thompson在2007年设计&#xff0c;并于2009年11月正式宣布推出的静态类型、编译型开源编程语言。Go语言以其提高编程效率、软件构建速度和运行时性能的设计目标&#xff0c;…