indigophp / doris
此包已弃用,不再维护。作者建议使用league/tactician-bernard-queueing包。
Doris是基于Bernard和Tactician的远程命令总线实现。
dev-develop
2015-01-12 21:20 UTC
Requires
- php: >=5.4.0
- bernard/bernard: dev-master
- league/event: ~2.0.0
- league/tactician: dev-master
Requires (Dev)
- henrikbjorn/phpspec-code-coverage: ~1.0.0
- indigophp/tactician-event-decorator: dev-develop
- phpspec/phpspec: ~2.1.0
Suggests
- indigophp/tactician-event-decorator: Used for event-driven consuming logic
This package is not auto-updated.
Last update: 2022-02-01 12:43:17 UTC
README
Doris是基于Bernard和Tactician的远程命令总线实现。
安装
通过Composer安装
$ composer require indigophp/doris
使用方法
在您的应用程序以及(如果有)专用工作包/实例中安装Doris。
您可以直接使用您的应用程序运行消费者,但如果可能,应避免这样做。启动应用程序消耗的资源比必要的多。(虽然有时这样做更简单。)在这种情况下,您必须确保向消费者实例提供所有所需数据:数据库连接详情、必需的依赖等。
远程执行
要向其目的地发送命令,只需创建一个远程执行命令总线,并像使用任何其他总线一样使用它。
use Doris\RemoteCommandBus; // ...create a Bernard\Queue instance // make sure to add te appropriate serializers $commandBus = new RemoteCommandBus($queue); $commandBus->execute($command);
消费命令
在消息队列的另一侧,您必须设置一个消费者。
use Doris\Consumer; use Doris\Listener\CommandLimit; // ... create your inner commandBus $consumer = new Consumer; // execute maximum of 10 commands $consumer->addListener(new CommandLimit(10)); $consumer->consume($queue, $commandBus);
可用监听器列表
CommandLimit
:限制应该执行的命令数量TimeLimit
:限制消费者可以运行的时间Wait
:在每次周期结束时等待一段时间
测试
$ phpspec run
贡献
有关详细信息,请参阅CONTRIBUTING。
致谢
名称指的是电影Bernard and Doris。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。