perspectivain/yii2-gearman

gearman服务器的消费者

dev-master 2015-03-21 15:08 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:07:23 UTC


README

用于作为消费者使用gearman服务器的组件

如果Yii2队列组件(yiisoft/yii2#492)被接受,则已弃用

简单使用

注册组件

'components' => [
    'gearman' => [
        'class' => 'perspectivain\gearman\Gearman',
        'jobsNamespace' => '\app\jobs\\',
        'servers' => [
            ['host' => GEARMAN_SERVER_HOST, 'port' => GEARMAN_SERVER_PORT],
        ],
    ],
    ...
],

注册命令控制器

'controllerMap' => [
    'worker' => [
        'class' => 'perspectivain\gearman\WorkerController'
    ],
    ...
]

创建工作类

namespace app\jobs;

class MyJob implements perspectivain\gearman\InterfaceJob
{
    /**
     * @inheritdoc
     */
    public function run($attributes)
    {
        //do something
    }
}

在您的应用程序中注册工作

\perspectivain\gearman\BackgroundJob::register('GearmanJob', ['attributeA' => 10]);

运行工作器

# php yii worker/run-one

如果您需要持续工作器,请使用crontab或supervisor进程控制系统(http://supervisord.org/)。

多队列使用

在您的应用程序中注册工作

$queueName = 'newqueue';
\perspectivain\gearman\BackgroundJob::register('GearmanJob', ['attributeA' => 10], \perspectivain\gearman\BackgroundJob::NORMAL, $queueName);

运行工作器

# php yii worker/run-one newqueue

安装

安装此扩展的首选方式是通过composer。

{
  "require": {
    "perspectivain/yii2-gearman": "*"
  }
}