wayhood/yii2-asynctask

使用redis的yii2队列扩展

安装: 490

依赖者: 0

建议者: 0

安全: 0

星标: 15

关注者: 4

分支: 2

开放问题: 1

类型:yii2-extension

dev-master 2016-08-11 19:09 UTC

This package is auto-updated.

Last update: 2024-09-07 16:56:49 UTC


README

使用redis进行异步任务处理的yii2模块

安装

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

运行以下命令之一:

php composer.phar require --prefer-dist wayhood/yii2-asynctask "*"

或者在您的composer.json文件的require部分添加:

"wayhood/yii2-asynctask": "*"

使用方法

要在Web应用程序中使用此模块,只需将以下代码添加到您的应用程序配置中:

reutrn [
    'bootstrap' => [..., 'asynctask'],
    'modules' => [
        'asynctask' => [
            'class' => 'wh\asynctask\Module',
            'redis' => 'redis' /* or [
            	'class' => 'yii\redis\Connection',
            	'hostname' => 'localhost',
            	'port' => 6379,
            	'database' => 0,
            ]*/
        ]
    ],
    ...
];

http://path/to/index.php?r=asynctask

要在控制台应用程序中使用此模块,与Web应用程序类似

运行

./yii asynctask "a, b, c"  

a, b和c是队列名称。

创建工作文件

<?php
/**
 * @link http://www.wayhood.com/
 */

namespace frontend\workers;

/**
 * Class TestWorker
 * @package frontend\workers
 * @author Song Yeung <netyum@163.com>
 * @date 12/20/14
 */
class TestWorker extends \wh\asynctask\Worker
{
    protected static $queue = 'abc'; //a queue name
    
    protected static $redis = 'reids' //or a configure array.

    public static function run($a, $b)
    {
        var_dump($a); //real process code
        var_dump($b);
    }
}

在控制器或模型中调用工作文件,或在任何地方调用。

// run one time
    \frontend\workers\TestWorker::runAysnc('a', 'b');
// run after 10 sec
    \frontend\workers\TestWorker::runIn('10s', 'a', 'b');
// run each 10 min
    \frontend\workers\TestWorker::runEach('10m', 'a', 'b');