lit/atd
最新稳定版本:v0.0.1
Composer 安装命令:
composer require lit/atd
包简介
基于Redis的延时队列
README 文档
README
变量解释
$redisHandler; //redis链接句柄, Task与listen 使用时需长连接 $topic; //话题 $topics; //话题数组 $message; //消息体
启动服务
//连接redis $redisHandler = new \Redis(); $redisHandler->pconnect("192.168.1.163"); //需使用长连接 //延时队列服务 \Lit\Atd\Task::init($redisHandler)->run();
发布一条延时消息
use \Lit\Atd\Mapper\Message; //连接redis $redisHandler = new \Redis(); $redisHandler->connect("192.168.1.163"); //$message 消息体, 如果消息体重复会重置消息时间, 使用 $message->uniq_id 避免此问题 $message = new Message(); $message->topic = "topic1"; $message->body = "消息体!" ;;//. uniqid(); $message->uniq_id = ""; //唯一ID, 如果需要延期某条消息或者删除某条消息,需记录此ID //$time 要执行的10位时间戳 $time = time() + 1; var_dump(\Lit\Atd\Client::init($redisHandler)->at($time, $message));
消费延时队列
//连接redis $redisHandler = new \Redis(); $redisHandler->connect("192.168.1.163"); $topic = "topic1"; $msg = \Lit\Atd\Client::init($redisHandler)->pop($topic); if (null !== $msg) { var_dump($msg->uniq_id, $msg->body, $msg->topic); }
监听延时队列
监听延时队列, 并使用回调函数执行相应操作
//连接redis $redisHandler = new \Redis(); $redisHandler->pconnect("192.168.1.163"); //需使用长连接 //$topics 要监听的topic 必须为数组, 可同时监听多个 topic $topics[] = "topic1"; $topics[] = "topic2"; \Lit\Atd\Client::init($redisHandler)->listen($topics, function (Message $message) { var_dump($message->topic, $message->body, $message->uniq_id); });
删除未发布的消息
use \Lit\Atd\Mapper\Message; //连接redis $redisHandler = new \Redis(); $redisHandler->connect("192.168.1.163"); //$message 消息体 $message = new Message(); $message->topic = "topic1"; $message->body = "消息体!";// . uniqid(); $message->uniq_id = ""; //唯一ID, 需和写入时的值相同 var_dump(\Lit\Atd\Client::init($redisHandler)->remove($message));
统计信息
- 总下载量: 9.83k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2021-01-07