pyrowman/pheanstalk

EvQueue 队列的 PHP 客户端

1.0.0 2019-11-26 10:51 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:38 UTC


README

Packagist Version Scrutinizer Code Quality Code Coverage Build Status

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 许可证 下发布