aklim/eventsauce-outbox

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

3.4 2023-06-05 10:08 UTC

This package is auto-updated.

Last update: 2024-09-05 12:56:34 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 (无限)