andreo/eventsauce-outbox

为 EventSauce 提供扩展的消息出站组件

3.3 2023-03-17 11:41 UTC

This package is auto-updated.

Last update: 2024-09-17 14:58:45 UTC


README

为 EventSauce 提供扩展的消息出站组件

composer require andreo/eventsauce-outbox

需求

  • PHP >=8.2
  • Symfony console ^6.2

以前版本文档

不进行消息派发的存储库

use Andreo\EventSauce\Outbox\Repository\EventSourcedAggregateRootRepositoryForOutbox;

new EventSourcedAggregateRootRepositoryForOutbox(
    aggregateRootClassName: $aggregateRootClassName,
    messageRepository: $messageRepository, // EventSauce\EventSourcing\MessageRepository
    regularRepository: $regularRepository // EventSauce\EventSourcing\AggregateRootRepository
)

消息消费者转发

此消费者通过消息派发器将消息发送到队列系统

use Andreo\EventSauce\Outbox\MessageConsumer\ForwardingMessageConsumer;

new ForwardingMessageConsumer(
    messageDispatcher: $messageDispatcher // EventSauce\EventSourcing\MessageDispatcher
)

从出站发送消息的命令

use Andreo\EventSauce\Outbox\Command\OutboxMessagesConsumeCommand;

new OutboxMessagesConsumeCommand(
    relays: $relays, // Symfony\Component\DependencyInjection\ServiceLocator<EventSauce\MessageOutbox\OutboxRelay>
    logger: $logger, // ?Psr\Log\LoggerInterface
)
php bin/console andreo:eventsauce:message-outbox:consume foo-relay-id

命令选项

中继

  • 必需
  • string[]

在服务定位器中注册的中继 ID

--run=true

  • 可选
  • 默认: true

消息处理运行

--batch-size=100

要检索的批处理消息数量

  • 可选
  • 默认: 100

--commit-size=1

一次性提交的消息数量

  • 可选
  • 默认: 1

--sleep=1

存储库为空时休眠的秒数

  • 可选
  • 默认: 1

--limit=-1

要处理的消息次数

  • 可选
  • 默认: -1 (无限)