dcarbone / ugly-queue
一个简单的基于文件的PHP 5.3.3+队列系统
0.4.0
2015-09-30 20:12 UTC
Requires
- php: >=5.3.3
- dcarbone/helpers: ~6.1
Requires (Dev)
- phpunit/phpunit: ~4.1
README
一个简单的基于文件的FIFO队列系统,适用于PHP 5.3.3+
安装
此库设计为通过https://getcomposer.org.cn/安装到您的应用程序中。只需将以下行复制粘贴到您的 "requires:"
键中
"dcarbone/ugly-queue": "0.4.*"
基本用法
安装后,您必须首先初始化src/UglyQueueManager.php的一个实例。操作方式如下
$queueBaseDir = 'path to where you would like queue files and directories to be stored'; $manager = new UglyQueueManager($queueBaseDir);
初始化后,您就可以开始添加队列了!
$sandwichQueue = $manager->createQueue('sandwiches'); $sandwichQueue->lock(); $sandwichQueue->addItems(array( 'bread', 'meat', 'cheese', 'lettuce', 'bread' )); $sandwichQueue->unlock();
一旦将项目添加到队列中,您可以选择随时提取项目,或者设置某种类型的cron或计划任务来定期处理项目。
如果所有队列的基础目录保持不变,每次初始化UglyQueueManager
将自动找到并初始化现有的UglyQueues实例。
在后续请求中,只需执行以下操作
$queueBaseDir = 'path to where you would like queue files and directories to be stored'; $manager = new UglyQueueManager($queueBaseDir); $tastySandwich = $manager->getQueue('sandwiches'); // 'sandwiches' queue will exist now $tastySandwich->lock(); // Specify the number of items you wish to retrieve from the queue $items = $tastySandwich->retrieveItems(4); // $items is now an array... var_export($items); /* array ( 4 => 'bread', 3 => 'lettuce', 2 => 'cheese', 1 => 'meat', ) */
队列将保留单个项目,0 => 'bread'
作为队列中留下的第5个项目。
您可以在任何时候通过执行count($queueObj);
来确定队列中剩余的项目数量。
目前存在一些限制
- 此库设计用于处理小数值,没有太多格式化或换行符
- 它设计为是原子的,这意味着一次只有一个进程可以添加/检索队列中的项目。但是,读取操作(计数、搜索等)不是原子的。