piteer1/celery-php

该包最新版本(dev-master)没有提供许可证信息。

dev-master 2014-12-09 14:23 UTC

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