Skip to content

lizhengnacl/hold-on

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

背景

并发场景下,避免相同耗时操作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') {
    holdOn.hold(key);
    
    await action(); // 模拟耗时操作
    
    holdOn.release(key);
}
await holdOn.wait(key);
// 结束耗时操作,继续流程

About

hold on, waiting for long-running operations

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published