mysic / phpamqplib-consumer
此包已被废弃且不再维护。未建议替代包。
关于此包的最新版本(v0.0.1)没有可用的许可证信息。
消息队列消费者
v0.0.1
2019-04-17 06:51 UTC
Requires
- catfan/medoo: ^1.6
- elasticsearch/elasticsearch: ^6.0
- php-amqplib/php-amqplib: ^2.8
Requires (Dev)
- php-amqplib/php-amqplib: ^2.8@dev
This package is auto-updated.
Last update: 2022-05-27 08:44:15 UTC
README
为RabbitMQ编写的消费者包
目录结构
/
core/ 包核心目录
Db.php Mysql数据源连接器
Dispatcher.php 任务调度
MqConnector.php RabbitMQ 连接器
Processor.php 父级消息处理器
Storage.php 父级数据存储器
task/ 任务目录
project_1/ 项目1的消费业务代码
project_n/ 项目n的消费业务代码
config/ 配置文件
processor/ 每个队列所对应的消费处理器(消费者)
storage/ 数据存储对象实例
run.php cli入口文件
任务示例
示例说明
- 本示例中数据存储涉及到MYSQL,ELASTIC。MYSQL是数据源,ELASTIC是数据目标存储
- 队列中的消息保存的是MYSQL中的
id
,以及消息extra
额外信息 - 数据源不是必须的。可以将要写入目标数据存储的完整信息都写入队列,读取时直接获取的就是详细信息。根据自身业务来决定。
-业务流程:
- 从队列中读取消息中的id和extra。通过id到数据源存储中读取数据的详细信息
- 将详细信息以及额外信息处理后存入数据存储器中
示例文件说明
config/ 配置文件
db.php 数据源连接器配置文件
messageQueue.php 消息队列配置文件
storage.php 数据存储配置文件
processor/ 每个队列所对应的消费者处理逻辑
Document.php 生成CURD ES文档的方法集
Example.php 消息处理器示例
storage/ 数据存储对象实例
Elastic.php 存储器实例
运行示例
在命令行中执行:
php run.php project_name processor_name storage_name
project_name 项目名称 (task下的项目目录名)
processor_name 消费处理器名称
storage_name 存储名称