tourze / json-rpc-lock-bundle
JsonRPC锁定处理
Installs: 3 521
Dependents: 5
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^8.1
- psr/log: ^3|^2|^1
- symfony/cache-contracts: ^3
- symfony/config: ^6.4
- symfony/dependency-injection: ^6.4
- symfony/framework-bundle: ^6.4
- symfony/http-kernel: ^6.4
- symfony/lock: ^6.4
- symfony/security-bundle: ^6.4
- symfony/service-contracts: ^3.5
- symfony/yaml: ^6.4 || ^7.1
- tourze/backtrace-helper: ~0.0.5
- tourze/bundle-dependency: 0.0.*
- tourze/json-rpc-core: ^0.0.6
- tourze/lock-service-bundle: 0.1.*
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-05-11 12:26:06 UTC
README
JsonRPC锁定处理 Symfony Bundle,用于为 JsonRPC 接口提供自动锁定功能。
功能特点
- 为 JsonRPC 请求提供并发锁定控制
- 支持基于用户身份的锁定资源识别
- 提供请求幂等性处理
- 异常处理和日志记录
安装
通过 Composer 安装:
composer require tourze/json-rpc-lock-bundle
使用方法
- 在你的 Symfony 应用中注册 Bundle:
// config/bundles.php return [ // ... Tourze\JsonRPCLockBundle\JsonRPCLockBundle::class => ['all' => true], ];
- 创建继承自 LockableProcedure 的 JsonRPC 过程类:
use Tourze\JsonRPCLockBundle\Procedure\LockableProcedure; use Tourze\JsonRPC\Core\Model\JsonRpcParams; class MyProcedure extends LockableProcedure { protected function execute(JsonRpcParams $params): mixed { // 你的业务逻辑 return $result; } // 可选:自定义锁资源标识 protected function getLockResource(JsonRpcParams $params): ?array { return ['custom_resource_' . $params->get('id')]; } // 可选:启用幂等性缓存 protected function getIdempotentCacheKey(JsonRpcRequest $request): ?string { return 'my_procedure_' . $request->getParams()->get('id'); } }
测试
运行测试:
./vendor/bin/phpunit packages/json-rpc-lock-bundle/tests