mariano / disque-php
PHP库,用于Disque内存分布式工作队列
2.0.3
2017-02-16 22:49 UTC
Requires
- php: >=5.5
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~4.6
- scrutinizer/ocular: ~1.1
This package is not auto-updated.
Last update: 2024-09-22 07:33:17 UTC
README
一个用于disque分布式工作队列的PHP库。特性
- 支持PHP (5.5+) 和 HHVM
- 无依赖:直接快速连接到Disque
- 高级API,轻松将工作推送到队列,并从队列中检索工作
- 轻松安排工作在某个
DateTime
执行 - 使用内置的
Job
类,或实现自己的类 - 基于节点产生的工作数量的智能节点连接支持
- 使用内置连接连接到Disque,或重用现有的Redis客户端(例如 predis)
- 支持所有当前Disque命令,并允许您轻松实现自定义命令
- 完全单元测试
安装
$ composer require mariano/disque-php --no-dev
如果您想运行其测试,请移除--no-dev
参数。
用法
此库提供队列API,用于轻松推送/拉取工作,并通过其客户端API直接访问所有Disque命令。
创建客户端
use Disque\Connection\Credentials; use Disque\Client; $nodes = [ new Credentials('127.0.0.1', 7711), new Credentials('127.0.0.1', 7712, 'password'), ]; $disque = new Client($nodes);
排队工作
$job = new \Disque\Queue\Job(['name' => 'Claudia']); $disque->queue('my_queue')->push($job);
安排工作在指定时间执行
$job = new \Disque\Queue\Job(['name' => 'Mariano']); $disque->queue('my_queue')->schedule($job, new \DateTime('+2 hours'));
检索排队的工作,标记为已处理,并继续等待工作
$queue = $disque->queue('my_queue'); while ($job = $queue->pull()) { echo "GOT JOB!"; var_dump($job->getBody()); $queue->processed($job); }
有关提供的API的更多信息,请阅读完整文档。
测试
$ phpunit
贡献
请参阅CONTRIBUTING以获取详细信息。
支持
如果您需要帮助或希望进行合作,请随时在twitter上联系我:@mgiglesias
安全
如果您发现任何与安全相关的问题,请通过@mgiglesias联系,而不是使用问题跟踪器。
致谢
首先和最重要的是,感谢Salvatore Sanfilippo编写了看起来是工作队列的最终解决方案(感谢所有关于Gearman的鱼)。
其他disque客户端库提供了灵感。
The PHP League提供了出色的README.md
骨架,以及有关包装PHP组件的建议。
对我们的贡献者表示特别的认可和感激!
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。