marlonfan / disque-php
PHP库,用于Disque内存分布式作业队列
2.0.4
2019-06-19 11:19 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-20 11:24:53 UTC
README
这是一个PHP库,用于非常出色的disque分布式作业队列。特性:
- 支持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)。有关更多信息,请参阅许可文件。