studiobonito/silverstripe-queue

简单的多驱动队列系统。

安装: 139

依赖: 0

建议者: 0

安全: 0

星星: 7

关注者: 4

分支: 1

开放问题: 3

类型:silverstripe-module

0.8.2 2014-06-06 09:51 UTC

This package is not auto-updated.

Last update: 2024-09-10 01:48:23 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

概述

简单的多驱动队列系统。这实际上是将 Laravel 队列系统移植过来。

仍然是一个非常正在进行中的项目,不适用于生产环境!

尽管直接使用 illuminate/queue 会更好,但它有太多的依赖关系,这会重复 silverstripe/framework 的功能。通过移植代码,我们可以利用 SilverStripe 的命令行框架和依赖注入,同时仍然拥有功能丰富的多后端队列系统。

因此,我们要感谢 Taylor Otwell 等人为 Laravel 做出的出色工作。

要求

  • SilverStripe 3.1 或更高版本。
  • 为了支持 Beanstalkd,需要 pda/pheanstalk 2.1 或更高版本

支持的后端

  • 同步
  • SilverStripe 数据库
  • Beanstalkd
  • IronMQ
  • Amazon SQS
  • Redis

安装说明

Composer

运行以下命令将此模块作为依赖项添加并通过 composer 安装。

$ composer require studiobonito/silverstripe-queue

手动

将 'queue' 文件夹复制到您的 SilverStripe 安装根目录。

配置概述

使用以下 YAML 配置队列驱动程序。

StudioBonito\SilverStripe\Queue\QueueManager:
    default: 'db'
    db:
        driver: 'db'
        queue: 'default'
    beanstalkd:
        driver: 'beanstalkd'
        host: 'localhost'
        queue: 'default'
        ttr: 60

使用概述

导入 QueueManager

导入 QueueManager 类以方便使用。

use StudioBonito\SilverStripe\Queue\QueueManager;

将作业推送到队列

使用 QueueManager::inst() 获取 QueueManger 类的实例,然后调用 push() 方法,传入作业处理程序名称和数据数组。

QueueManager::inst()->push('SendEmail', array('message' => $message));

创建作业处理程序

作业处理程序是简单的类,其中包含一个具有 $job$data 参数的 run 方法。

class SendEmail {

    public function run($job, $data)
    {
        // Code for processing job goes here.
    }
}

贡献

单元测试

$ composer install --prefer-dist --dev
$ phpunit

许可

所有原始作品版权归 Taylor Otwell 所有,并受 MIT 许可证 保护。所有后续作品版权归 Studio Bonito Ltd. 所有,并受 BSD-2-Clause 许可证保护。