indigophp / doris

此包已弃用,不再维护。作者建议使用league/tactician-bernard-queueing包。

Doris是基于Bernard和Tactician的远程命令总线实现。

dev-develop 2015-01-12 21:20 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:43:17 UTC


README

Latest Version Software License Build Status Code Coverage Quality Score HHVM Status Total Downloads

Doris是基于BernardTactician的远程命令总线实现。

安装

通过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)。请参阅许可证文件以获取更多信息。