aklim / eventsauce-outbox
为EventSauce提供扩展消息出站组件。
3.4
2023-06-05 10:08 UTC
Requires
- php: >=8.2
- eventsauce/eventsauce: ^3.0
- eventsauce/message-outbox-for-doctrine: ^1.0
- eventsauce/test-utilities: ^3.0
- symfony/console: ^6.2
- symfony/dependency-injection: ^6.2
Requires (Dev)
- eventsauce/uuid-encoding: ^1.0
- 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 (无限)