0.1.2 • Published 7 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);
// 结束耗时操作,继续流程