装备 / beanstalkd-consumer
此包已被弃用,不再维护。没有建议的替代包。
用于编写命令行 beanstalkd 消费者的小型库
0.2.1
2016-01-08 17:58 UTC
Requires
- aura/cli: ^2
- equip/framework: ^1
- pda/pheanstalk: ^3
Requires (Dev)
- phake/phake: ^2
- phpunit/phpunit: ^4
This package is auto-updated.
Last update: 2021-07-31 01:37:22 UTC
README
一个用于在 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
。