{"repo":"workbunny/webman-rqueue","free":true,"listed":false,"github":"https://github.com/workbunny/webman-rqueue","clone":"git clone https://github.com/workbunny/webman-rqueue.git","description":"🚀🐇 A lightweight queue based on Redis Stream for webman plugin.","language":"PHP","stars":23,"topics":["queue","redis","webman","webman-plugin","workbunny"],"license":"MIT","category":"databases-storage","readme_excerpt":"workbunny/webman-rqueue 🐇 A lightweight queue based on Redis Stream for webman plugin. 🐇 A lightweight queue based on Redis Stream for webman plugin 常见问题 1. 什么时候使用消息队列？ 当你需要对系统进行解耦、削峰、异步的时候；如发送短信验证码、秒杀活动、资产的异步分账清算等。 2. RabbitMQ和Redis的区别？ Redis中的Stream的特性同样适用于消息队列，并且也包含了比较完善的ACK机制，但在一些点上与RabbitMQ存在不同： - Redis Stream没有完善的后台管理；RabbitMQ拥有较为完善的后台管理及Api； - Redis的持久化策略取舍：默认的RDB策略极端情况下存在丢失数据，AOF策略则需要牺牲一些性能；RabbitMQ持久化方案更多，可对消息持久化也可对队列持久化； - RabbitMQ拥有更多的插件可以提供更完善的协议支持及功能支持； 3. 什么时候使用Redis？什么时候使用RabbitMQ？ 当你的队列使用比较单一或者比较轻量的时候，请选用 Redis Stream；当你需要一个比较完整的消息队列体系，包括需要利用交换机来绑定不同队列做一些比较复杂的消息任务的时候，请选择RabbitMQ； 当然，如果你的队列使用也比较单一，但你需要用到一些管理后台相关系统化的功能的时候，又不想花费太多时间去开发的时候，也可以使用RabbitMQ；因为RabbitMQ提供了一整套后台管理的体系及 HTTP API 供开发者兼容到自己的管理后台中，不需要再消耗多余的时间去开发功能； 注：这里的 轻量 指的是 无须将应用中的队列服务独立化，该队列服务是该应用独享的 简介 - 基于Redis Stream的轻量级队列； - Queue 模式：多个消费者竞争消费 - 支持普通消费 - 支持延迟消费 - Group 模式：多个消费组订阅消费 - 支持普通消费 - 支持延迟消费 - Adaptive 模式：Queue的自适应版消费者 - 支持普通消费 - 支持延迟消费 - 可靠的重载机制，防止消息意外丢失/重复消费 - 使用本地sqlite库储存因意外中断的消息 - 自动加载本地消息至队列 - 简单易用容易理解的使用方式 - 丰富的命令行助手，助手函数 - BuilderClass继承模式（类似ORM的ModelClass） - 支持自定义BuilderClass，实现自定义的消费逻辑 安装 环境依赖 - php =8.0 - webman = 1.0 - redis = 6.2 使用 QueueBuilder - 一个QueueBuilder类对应一个消费Group和一个消费逻辑 - 一个QueueBuilder可对应一个/多个Redis-Stream-Key，通过配置 - QueueBuilder类使用定时器进行消费，每一次消费之后会根据消息的属性 来进行消息释放 命令行 --mode默认为queue - 创建 - 移除 移除包含了类文件的移除和配置的移除 - 开启 开启仅对配置进行移除 - 关闭 关闭仅对配置进行移除 GroupBuilder - 一个GroupBuilder类对应一个消费Group和一个消费逻辑 - 一个GroupBuilder可对应一个/多个Redis-Stream-Key，通过配置 - GroupBuilder类使用定时器进行消费，使用定时器释放当","default_branch":null,"files":null,"tree":[],"storefront":"/r/workbunny","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/workbunny/webman-rqueue/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}