pyrowman / pheanstalk
EvQueue 队列的 PHP 客户端
1.0.0
2019-11-26 10:51 UTC
Requires
- php: >=7.1.0
- doctrine/collections: ^1.6
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-29 05:28:38 UTC
README
Pheanstalk 是一个纯 PHP 7.1+ 客户端,用于 evqueue 工作队列。
Pheanstalk 3.0 引入了 PHP 命名空间、PSR-1 和 PSR-2 编码标准以及 PSR-4 自动加载标准。
此项目是从 原始 Pheanstalk 分支出来的,原始 Pheanstalk 是 beanstalkd 工作队列的客户端。
特别感谢 Paul Annesley;该库的原始创建者。
使用 Composer 安装
使用 composer 将 pheanstalk 作为依赖项安装
composer require pyrowman/pheanstalk
使用示例
<?php // Hopefully you're using Composer autoloading. use Pheanstalk\Pheanstalk; $pheanstalk = new Pheanstalk('127.0.0.1', 'admin', 'admin'); // Create a simple Worflow with one job inside $workflow = $pheanstalk->createTask('Sleep', 'Test', '/bin/sleep 80'); // Put the job into instance execution $pheanstalk->put($workflow); // ---------------------------------------- // check server availability $pheanstalk->getConnection()->isServiceListening(); // true or false //----------------------------------------- // Add a scheduler for the job (by default in continous) $workflowSchedule = $pheanstalk->createSchedule($workflow, new TimeSchedule()); //----------------------------------------- // Edit a workflow $workflow->setGroup('2nd test group'); $pheanstalk->update($workflow); //----------------------------------------- // Getting infos on the execution of a workflow $workflowInstancesExecuting = $pheanstalk->getWorkflowInstances($workflow, GetWorkflowInstancesCommand::FILTER_EXECUTING); $workflowInstancesTerminated = $pheanstalk->getWorkflowInstances($workflow, GetWorkflowInstancesCommand::FILTER_TERMINATED); //----------------------------------------- // Delete a job if ($workflow = $pheanstalk->workflowExists('Sleep')) $pheanstalk->delete($workflow);
运行测试
测试套件中有一部分依赖于在 127.0.0.1:5000 上运行的 evqueue。自移植到 PHPUnit 以来,所有测试都是一次性运行的。请随时提交 pull request 来修正这个问题。
# ensure you have Composer set up $ wget https://getcomposer.org.cn/composer.phar $ php composer.phar install $ ./vendor/bin/phpunit -c phpunit.xml.dist PHPUnit 7.5.14 by Sebastian Bergmann and contributors. ............................................................... 63 / 110 ( 57%) ............................................... 110 / 110 (100%) Time: 6.55 seconds, Memory: 10.00 MB OK (110 tests, 161 assertions) Generating code coverage report in HTML format ... done
许可
© Valentin Corre
在 MIT 许可证 下发布