承接 kwm/think-amqp 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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; //消费成功,返回其他都会认为是失败
})

封装特性:

  • 支持设置最大次数的失败自动重试
  • 重试可自定义延时时间

消费者命令行

配置
  1. 配置文件: app/tasks.php,内容请见 这里

  2. 启动消费者: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 我们能提供哪些服务?
定制开发 / 二次开发

基于 kwm/think-amqp 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 382
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2019-11-19