VonaJS分布式锁,如何实现高效锁定?

摘要:分布式锁 VonaJS 基于Redlock提供了直观、易用的分布式锁 创建分布式锁 比如,在模块 demo-student 中创建分布式锁 1. Cli命令 $ vona :create:bean meta redlock --module
分布式锁 VonaJS 基于Redlock提供了直观、易用的分布式锁 创建分布式锁 比如,在模块 demo-student 中创建分布式锁 1. Cli命令 $ vona :create:bean meta redlock --module=demo-student 2. 菜单命令 右键菜单 - [模块路径]: `Vona Meta/Redlock` 分布式锁定义 export type TypeRedlockLockResource = never; export type TypeRedlockLockIsolateResource = never; @Meta() export class MetaRedlock extends BeanRedlockBase<TypeRedlockLockResource, TypeRedlockLockIsolateResource> {} TypeRedlockLockResource: 定义lock方法使用的锁资源 TypeRedlockLockIsolateResource: 定义lockIsolate方法使用的锁资源 定义锁资源 当我们使用分布式锁时,需要指定对应的锁资源。比如,为lock方法定义锁资源name: - export type TypeRedlockLockResource = never; + export type TypeRedlockLockResource = 'name'; 使用分布式锁 class ControllerStudent { async test() { const res = await this.scope.redlock.lock('name', async () => { // do something in lock return 'some result'; }); } } redlock.lock:传入锁资源name lock/lockIsolate VonaJS 提供了两个锁方法: lock/lockIsolate。
阅读全文