dcarbone/ugly-queue

一个简单的基于文件的PHP 5.3.3+队列系统

0.4.0 2015-09-30 20:12 UTC

This package is auto-updated.

Last update: 2024-09-17 08:50:02 UTC


README

一个简单的基于文件的FIFO队列系统,适用于PHP 5.3.3+

构建状态:Build Status

安装

此库设计为通过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);来确定队列中剩余的项目数量。

目前存在一些限制

  1. 此库设计用于处理小数值,没有太多格式化或换行符
  2. 它设计为是原子的,这意味着一次只有一个进程可以添加/检索队列中的项目。但是,读取操作(计数、搜索等)不是原子的。