frzb / transactional-messenger
TransactionalMessenger组件允许将消息传递操作变为事务性
v1.5.0
2024-08-12 23:19 UTC
Requires
- php: >=8.2
- fp4php/functional: ^6.0
- symfony/event-dispatcher: ^6|^7
- symfony/framework-bundle: ^6|^7
- symfony/http-kernel: ^6|^7
- symfony/messenger: ^6|^7
- symfony/yaml: ^6|^7
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.61
- phpunit/php-code-coverage: ^11.0
- phpunit/phpunit: ^11.2
- symfony/phpunit-bridge: ^6|^7
- symfony/test-pack: ^1.0.10
README
Transactional Messenger
组件允许将消息传递操作变为事务性
安装方法
推荐通过Composer进行安装
composer require frzb/transactional-messenger
它需要PHP版本8.2及以上。
使用#[Transactional]
#[Transactional]
将自动为您的消息创建和关闭事务,默认的CommitType
是CommitType::OnTerminate
提交类型
CommitType::OnTerminate
针对请求,在响应发送且没有异常时执行CommitType::OnResponse
针对请求,在请求结束且没有异常时执行CommitType::onHandled
针对消费者,在消息成功处理时执行
事件
FRZB\Component\TransactionalMessenger\Event\DispatchSucceedEvent
在消息分发时执行FRZB\Component\TransactionalMessenger\Event\DispatchFailedEvent
在消息失败时执行
示例
<?php use \FRZB\Component\TransactionalMessenger\Attribute\Transactional; #[Transactional] final class CreateUserMessage { public function __construct( public readonly string $id, public readonly string $name, ) { } }