Search by

shali / think-msg

shali

thinkphp-msg 是一个基于 thinkphp 的消息推送扩展。

Package info

gitee.com/goodbugood/think-msg

Type:think-extend

pkg:composer/shali/think-msg

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

2.0.0 2026-10-30 08:32 UTC

This package is not auto-updated.

Last update: 2026-10-31 13:08:25 UTC


README

帮助

安装

composer require shali/think-msg

使用

  1. v1.x.x 版本,安装完成会自动接管你的异常,并处理异常消息发送
  2. v2.x.x 版本,安装完成不再强制接管你的异常,如果你需要处理异常消息,需要在 provider 中注册他,或者基于他衍生你的自定义异常处理器。

发送异常报告

你的系统出现异常时,你无法及时了解。借助这个扩展,你可以将异常报告发送给指定的邮箱,或者即时聊天平台,如:微信、QQ、钉钉等。

  1. 当你安装完 think-msg 扩展后,你需要在 config/msg.php 文件中配置好你的参数,他就能在你的系统中运行起来,帮你接管异常消息的通知。不需要你改动任何现有的业务逻辑代码。
  2. 异常报告的发送默认是异步的,当然他需要你运行消息发送队列任务。php think queue:listen --queue=think-msg:msg_push

相同异常间隔通知

扩展使用异常类名、异常代码、相对文件路径和行号生成异常指纹。异常消息不参与指纹计算,因此消息中的订单号、用户 ID 等动态业务数据不会导致同类异常重复通知。

// config/msg.php
'exception_report' => [
    // 同类异常每 30 分钟最多通知一次;设置为 0 表示关闭间隔限制
    'interval' => 1800,
    // 对应 config/cache.php 中的 Redis store
    'redis_store' => 'redis',
    'key_prefix' => 'think-msg:exception:',
    // Redis 不可用时仍发送通知,避免漏报
    'fail_open' => true,
],

间隔从上一次成功取得通知资格时开始计算,期间重复发生的异常不会刷新间隔。多个进程并发上报同类异常时,Redis 原子操作保证只有一个进程入队通知。

发送普通消息

我们还支持发送普通消息,可选异步或同步发送。

$msg = \think\msg\msg\TextMsg::build()->setContent('你好,我是小助手');
// 同步发送
\think\msg\facade\Msg::send($msg);
// 异步发送
\think\msg\facade\Msg::asyncSend($msg);

支持的平台

  • [ ] 钉钉
  • [x] 飞书
  • [ ] 微信
  • [ ] QQ
  • [ ] 邮件
  • [ ] 短信