piteer1 / celery-php
该包最新版本(dev-master)没有提供许可证信息。
dev-master
2014-12-09 14:23 UTC
Requires (Dev)
- mockery/mockery: dev-master@dev
- phpredis/phpredis: 2.2.3
- phpunit/phpunit: 3.*
This package is not auto-updated.
Last update: 2024-09-24 15:56:03 UTC
README
这是什么?
此库允许使用不同的后端添加 celery 任务,并简化了对它的访问。
使用示例
<?php //create new celery redis class use Celery; use Celery\Backend\Factory; $celery = new Celery( Factory::factory('redis', array(/*host port etc*/)); ); //you can also create by hand instance of Redis backend use Celery\Backend\Redis; use Celery\Backend\RedisOptions; $celery = new Celery( new Redis( RedisOptions( array( //host port etc. ) ) ) ); $celery->pushTask( $exchangeName, $queueName, $taskName, $exchangeType, array $args ); ?>
单元测试
要运行单元测试,请首先运行
make init
之后您应该能够使用
make phpunit
您还可以从系统安装中使用 phpunit。如果您已经安装了它,只需
cd tests
phpunit
但请确保仍然运行 make init
,因为它将安装必要的 Mockery。
此外,您还需要安装并添加到 PHP 中的 phpredis 扩展。如果您运行了 make composer / make init
,您可以在 vendor 目录中找到 phpredis。
开发者指南
要添加新的 Celery 后端,您应该创建两个名为
- BackendName 的类,位于 Celery/Backend/BackendName.php 文件中
- BackendNameOptions 的类,位于 Celery/Backend/BackendNameOptions.php 文件中
第一个类应实现 BackendInterface
(也可以扩展 BackendAbstract
类)。此类处理任务本身,封装后端特定函数(它是一个适配器)。
第二个类应封装 后端特定 的初始化。
如果某个后端无法实现接口所需的某个方法,因为它不支持某种交换类型,则应抛出异常 Celery\Exception\NotSupportedExchangeTypeException