# EasyQueue **Repository Path**: 392223903/easy-queue ## Basic Information - **Project Name**: EasyQueue - **Description**: 简单易用的PHP-Reids延迟队列 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 4 - **Created**: 2020-10-25 - **Last Updated**: 2024-11-14 ## Categories & Tags **Categories**: message-server **Tags**: None ## README

EasyQueue简单易用PHP-Redis队列,支持延迟队列

##

队列介绍

基于Redis有序集合实现的Redis延迟队列,添加/删除/查找的复杂度都是 O(1),每个队列中可存储40多亿元素。

##

环境依赖

~~~ "php": ">=5.4" "ext-redis": ">=2.0" ~~~ ##

Composer安装

~~~ composer require easy-queue/easy-queue ~~~ ##
【A】. 快速入门->生产者(延迟队列)
~~~ //加载Redis $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //创建easy-queue对象 $queue = new Queue($redis); //向seo_link延迟队列中投递数据(30秒后处理) $name = 'seo_link'; $value = json_encode([ 'article_id' => $_GET['article_id'], 'add_time' => time(), ]); $time = time() + 30; $res = $queue->add($name, $value, $time); if ($res) { echo '投递成功'; } else { echo '投递失败'; } ~~~ ##
【B】. 快速入门->消费者(延迟队列)
~~~ //加载Redis $redis = new Redis(); $redis->connect('127.0.0.1', 6379); //创建easy-queue对象 $queue = new Queue($redis); //从seo_link延迟队列中取出到期的数据 $name = 'seo_link'; $value = $queue->get($name); if ($value) { $value = json_decode($value, true); var_dump($value); } ~~~ ##
【C】. 快速入门->消费者参数解释
~~~ 消费者函数get方法参数说明: $name:传递要消费的延迟队列名称 $e_time:获取队列中到期时间小于等于$e_time的数据 $s_time:获取队列中到期时间大于等于$s_time的数据 $limit:获取多少条数据,如果大于1条则返回二维数组,否则返回一维数组 $remove:设置获取后是否删除队列中的值,默认为删除 (1).在队列中查询time<=1603597141 and time>=0 的元素(同时队列中会自动删除符合条件的元素) $time = 1603597141; $list = $queue->get($time); (2).在队列中查询time<=1603597413 and time>=1603597132 的元素(同时队列中会自动删除符合条件的元素) $time1 = 1603597413; $time2 = 1603597132; $list = $queue->get($time1, $time2); (3).在队列中查询time<=1603597555 and time>=1603597132 的元素,只返回1条(同时队列中会自动删除这条元素) $time1 = 1603597555; $time2 = 1603597132; $list = $queue->get($time1, $time2,1); (4).在队列中查询time<=1603597693 and time>=1603597132 的元素返回10条即可,不删除队列数据,仅查看数据 $time1 = 1603597693; $time2 = 1603597132; $list = $queue->get($time1, $time2, 10, false); ~~~ ##
【D】. 快速入门->消费者(普通队列)
~~~ ...... ~~~ ##
【E】. Bug反馈
~~~ 请反馈至QQ392223903,感谢持续反馈! ~~~