0.1.2 • Published 6 years ago

koa2-hold-on v0.1.2

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

背景

并发场景下,避免相同耗时操作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);
// 结束耗时操作,继续流程