macklus/yii2-simple-queue

提供基于SQL的队列工作者的Yii2扩展

安装数: 2,384

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 3

分支: 0

开放问题: 0

类型:yii2-extension

1.0.2 2016-04-14 18:25 UTC

This package is not auto-updated.

Last update: 2024-09-25 23:19:06 UTC


README

提供基于SQL的队列工作者的Yii2扩展

安装

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

运行以下命令之一

php composer.phar require --prefer-dist macklus/yii2-simple-queue "*"

或者将以下内容添加到你的composer.json文件的require部分。

"macklus/yii2-simple-queue": "*"

配置

扩展安装完成后,配置它以定义队列组件

'queue' => [
  'class' => 'macklus\SimpleQueue\SimpleQueue',
  'connection' => 'db',
  'table' => 'simpleQueue',
  'persistent' => true,
  'duplicate_jobs' => false,
],

可选变量包括

  1. connection: 数据库连接
  2. table: 数据库表名
  3. persistent: 如果为true,则不会从数据库中删除任何工作,也会将它们标记为已结束
  4. duplicate_jobs: 在插入新工作之前搜索,以检测是否存在相似的工作

用法

配置扩展后,只需使用它将工作放入队列

Yii::$app->queue->putInTube($queue, [array_of_vars_of_job]);

控制器

你需要一个控制器来获取(并处理)所有工作。例如

<?php

namespace app\commands;

use macklus\SimpleQueue\SimpleQueueController;

class SqController extends SimpleQueueController
{

    const DELAY_PRIORITY = 1000; //Default priority
    const DELAY_TIME = 60; //Default delay time
    const DELAY_MAX = 3;

    public function listenTubes()
    {
        return ['test'];
    }

    public function actionTest($job)
    {
        $jobData = $job->getData();
        // do some stuff
        return self::DELETE;
    }
}