装备/beanstalkd-consumer

此包已被弃用,不再维护。没有建议的替代包。

用于编写命令行 beanstalkd 消费者的小型库

0.2.1 2016-01-08 17:58 UTC

This package is auto-updated.

Last update: 2021-07-31 01:37:22 UTC


README

Latest Stable Version License Build Status Code Coverage Scrutinizer Code Quality

一个用于在 beanstalkd 中编写命令行消费者的小型库,适用于 Equip 应用程序。

安装

使用 Composer

composer require equip/beanstalkd-consumer

编写消费者

消费者是一个实现了 ConsumerInterface 的 PHP 类,用于处理从 beanstalkd 接收到的作业,每个作业由 Job 类的实例表示。

以下是一个消费者实现的示例。

namespace Acme;

use Equip\BeanstalkConsumer\ConsumerInterface;
use Equip\BeanstalkConsumer\Job;

class FooConsumer implements ConsumerInterface
{
    public function consume(Job $job)
    {
        $id = $job->getId();
        $data = $job->getData();

        // unserialize and process $data here
    }
}

使用消费者

要使用上一节中显示的消费者,请确保其命名空间包含在您的 Composer 自动加载器 中,然后按照以下示例调用运行器。

如果此库作为项目依赖项安装

BEANSTALKD_CONSUMER="Acme\\FooConsumer" ./vendor/bin/beanstalkd-consumer

如果此库作为存储库克隆安装

BEANSTALKD_CONSUMER="Acme\\FooConsumer" ./bin/beanstalkd-consumer

配置

可以使用以下环境变量配置运行器。

  • BEANSTALKD_CONSUMER - 实现 ConsumerInterface 的 PHP 类的完全限定名称,用于消费作业
  • BEANSTALKD_HOST - beanstalkd 服务器的主机名,默认为 '127.0.0.1'
  • BEANSTALKD_PORT - beanstalkd 服务器监听的端口,默认为 11300
  • BEANSTALKD_TUBE - 消费者应从中消费作业的管子,默认为 'default'

消费者依赖

默认情况下,Auryn 内部用作解析器以创建消费者实例。因此,通过一些额外的代码,它还可以用于向消费者注入依赖项。

为了将消费者所需的任何附加配置应用到正在使用的Auryn Injector实例中,必须编写一个自定义运行器。它可能看起来与股票运行器相似,除了除了为运行器建立基本配置级别的DefaultConfigurationSet类之外,它还将应用消费者所需的任何配置。这可以通过使用以下示例所示的ConfigurationSet子类来实现。

namespace Acme;

use Equip\BeanstalkdConsumer\Configuration\DefaultConfigurationSet;
use Equip\Configuration\ConfigurationSet;

class Configuration extends ConfigurationSet
{
    public function __construct()
    {
        parent::__construct([
            DefaultConfigurationSet::class,
            FooConfiguration::class,
            BarConfiguration::class,
            // etc.
        ]);
    }
}

股票运行器和自定义运行器之间唯一的区别是,在配置Auryn Injector实例时,使用上面显示的类代替DefaultConfigurationSet