studiobonito / silverstripe-queue
简单的多驱动队列系统。
0.8.2
2014-06-06 09:51 UTC
Requires (Dev)
- mockery/mockery: ~0.9.0
- pda/pheanstalk: ~2.1
- phpunit/phpunit: ~3.7.0
- silverstripe/framework: ~3.1.2
- symfony/class-loader: ~2.3
Suggests
- pda/pheanstalk: Allows use of the Beanstalkd driver
This package is not auto-updated.
Last update: 2024-09-10 01:48:23 UTC
README
概述
简单的多驱动队列系统。这实际上是将 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 许可证保护。