andreo / eventsauce-outbox
为 EventSauce 提供扩展的消息出站组件
3.3
2023-03-17 11:41 UTC
Requires
- php: >=8.2
- eventsauce/eventsauce: ^3.0
- eventsauce/message-outbox-for-doctrine: ^0.3.0
- eventsauce/test-utilities: ^3.0
- symfony/console: ^6.2
- symfony/dependency-injection: ^6.2
Requires (Dev)
- eventsauce/uuid-encoding: ^0.3
- phpstan/phpstan: ^1.3
- phpunit/phpunit: ^9.4
- roave/security-advisories: dev-latest
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 (无限)