zw2582 / mq-redis-client
a php message queue with redis
v1.1.4
2018-08-10 07:10 UTC
Requires
- php: >=7.0.0
This package is not auto-updated.
Last update: 2025-03-02 08:32:31 UTC
README
本项目是一个基于redis实现的简单多进程消息队列客户端,提供消息发送,消息处理,可以定义处理消息的子进程数量. 发送的消息包括普通消息,优先级消息,未来消息,不支持订阅模式,每个消息有且只有一个客户端进程可以消费. 仅支持Linux环境
安装
composer require zw2582/mq-redis-client
特点
- 多进程并发执行
- 防丢失和复盘恢复
- 异常队列查看
- 稳定,具有子进程自启能力
- 简单,启动服务和发布消息都只有几段代码
使用方法
- 启动客户端服务 config.php由自己定义,可以不传则是默认定义,定义的参数在当前文件夹下config.php中 config.php中有一个handle参数,该参数用于定义自定义的任务处理程序 任务处理程序需要实现 \RedisMqClient\model\TaskHandleInterface 接口
$config = require './config.php';
//启动客户端,$config非必填
$client = new RedisMqClient\MQClient($config);
$client->start();
- 发送消息 消息可以是字符串,数字,数组,可被json_encode的对象
//发送消息
$client->sendTask('new message');
//发送优先级队列
$client->sendTask('new message', 1);
//发送未来执行队列
$client->sendTask('new message', time()+10); //未来10秒后执行
- config配置项
[
//队列配置
'queue'=>'queue', //任务队列名称,list
'queue_future'=>'queue_future', //未来级队列名称,zset
'queue_ing'=>'queue_ing', //正在进行队列和复盘队列名称,set
'queue_exception'=>'queue_exception', //异常队列名称,list
//最大进程数配置
'max_task_count'=>5,
//redis相关配置
'redis'=>[
'host'=>'127.0.0.1',
'port'=>'6379',
'username'=>'',
'password'=>'',
'db'=>1
],
//任务处理类
'handle'=>'Mynamespace\MyhandleClass'
]
其他
有任何其他的问题和建议可以联系:2582308253@qq.com 微信:weishen520123