0.1.2 • Published 6 years ago
koa2-hold-on v0.1.2
背景
并发场景下,避免相同耗时操作action
被重复触发,第1
个请求触发action
后,后续n
个同质请求被await
住,直到action
执行结束,n
个同质请求再继续执行,并直接使用action
的结果。
示例
const HoldOn = require('koa2-hold-on');
const holdOn = new HoldOn();
// 判断是否进入耗时操作
const key = 'some key';
let status = holdOn.get(key);
if(status !== 'hold') {
await holdOn.hold(key);
await action(); // 模拟耗时操作
await holdOn.release(key);
}
await holdOn.wait(key);
// 结束耗时操作,继续流程