mwillbanks / mw-gearman
此包已被 放弃 且不再维护。没有建议的替代包。
此包最新版本(dev-master)没有可用的许可信息。
一个提供 gearman 包装器的 ZF2 模块。
dev-master
2015-06-05 12:37 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: 3.7.*
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2020-01-21 14:09:55 UTC
README
版本 0.1.0 由 Mike Willbanks 创建
介绍
mwGearman 是一个处理与 Gearman 扩展接口的模块。此模块目前可以处理客户端和工作者的通信,并抽象部分任务处理。总体目标是完成 Zend\Console 后,将工作者集成到控制台,以便更简单地构建 gearman 工作者模型。
要求
- Zend Framework 2 (beta4+)
- PECL Gearman
安装
Composer 您的 composer.json 应包含以下内容。
{
"repositories": [
{
"type": "package",
"package": {
"version": "master",
"name": "mwGearman",
"source": {
"type": "git",
"url": "https://github.com/mwillbanks/mwGearman",
"reference": "master"
}
}
}
],
"require": {
"mwGearman": "master"
}
}
Git 子模块
- git submodule add [repo-url] ./vendor/mwGearman
- 将 'mwGearman' 添加到您的 application.config.php 文件中
用法
连接处理 DI 配置
<?php return array( 'di' => array( 'instance' => array( 'mwGearman\Client\Pecl' => array( 'parameters' => array( 'servers' => array( array('localhost'), ), ), ), 'mwGearman\Worker\Pecl' => array( 'parameters' => array( 'servers' => array( array('localhost'), ), ), ), ), ), );
向 Gearman 提交任务
<?php $gearman = $serviceMananger->get('mwGearman\Client\Pecl'); $gearman->connect(); $workload = 'some-string'; $task = new mwGearman\Task\Task(); $task->setBackground(true) ->setFunction('myJob') ->setWorkload($workload) ->setUnique(crc32($workload)); $handle = $gearman->doTask($task);
从 Gearman 获取任务
<?php $gearman = $serviceMananger->get('mwGearman\Worker\Pecl'); $gearman->register('myJob', 'handleJob'); $gearman->connect(); while($gearman->work()); function handleJob($job) { $workload = $job->workload(); echo $workload; }
路线图
- 集成 PEAR 的 Net_Gearman
- 为 BaseWorker 集成 Zend\Console