kwm/think-amqp
Composer 安装命令:
composer require kwm/think-amqp
包简介
基于 ThinkPHP 6 的 RabbitMQ 消息队列 AMQP 操作类
README 文档
README
基于 ThinkPHP 6 的 RabbitMQ 消息队列 AMQP 操作类
安装
该操作类需要依赖 PHP 的 AMQP 扩展,可使用
pcel install amqp安装
composer require kwm/think-amqp
安装完成后,请确认 vendor/services.php 中数组里有添加 think\\amqp\\Service。若没有添加,请手工运行:php think service:discover
入门
配置
将 示例配置文件 复制到项目 config 目录下
生产者
\think\Container::pull('exchange') ->set('kwm') ->publish('message');
若交换机不存在,默认会创建 fanout 交换机,需要你在管理界面绑定对应的队列,比如将 kwm 交换机和 kwm.queue 队列绑定到一起
消费者
$mq = \think\Container::pull('queue') ->set('kwm.queue'); $mq->setPrefetchCount(1); //一次只取一条消息 $mq->consume(function (\AMQPEnvelope $msg, \AMQPQueue $queue){ //... if (处理成功) { $queue->ack($msg->getDeliveryTag()); } else { $queue->nack($msg->getDeliveryTag()); // 不确认,下次会再推送该消息 } });
消费者封装
\think\amqp\Consumer::exec('kwm.queue', function (\AMQPEnvelope $msg, \AMQPQueue $queue, $deathCount){ return true; //消费成功,返回其他都会认为是失败 })
封装特性:
- 支持设置最大次数的失败自动重试
- 重试可自定义延时时间
消费者命令行
配置
-
配置文件:
app/tasks.php,内容请见 这里 -
启动消费者:
php think consumer kwm
kwm/think-amqp 适用场景与选型建议
kwm/think-amqp 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 382 次下载、GitHub Stars 达 7, 最近一次更新时间为 2019 年 11 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 kwm/think-amqp 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 kwm/think-amqp 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 382
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2019-11-19