0.2.1 • Published 3 years ago

@domain.js/parallel v0.2.1

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

@domain.js/parallel

Build status codecov

Installation

cnf

专属配置名称 parallel | 名称 | 类型 | 必填 | 默认值 | 描述 | 样例 | | ---- | ---- | ---- | ------ | ---- | ---- | | key | string | | | 记录并发锁的 redis 记录key | parallels | | defaultErrorFn | funtion | | | 处理并发锁申请错误函数 | Error |

deps

模块名别名用到的方法描述
loggerinfo输出观点时刻的信息,便于分析日志
gracefulexit注册进程退出的执行函数,便于在退出时清理残留锁
redishsetnx, hdel, hexists并发锁利用 redis hash 类型数据实现
utilsUsleep实现在申请锁的等待功能
asyncwhilst实现在申请锁,需要等待的时候循环等待

Usage

功能描述样例
parallel封装一个函数,使其拥有并发控制的能力,不改变其原有行为parallel(fn, { path: 'test' })

parallel 函数参数

顺序参数名类型必填默认值描述样例
1fnfunction要加工处理的函数const test = () => { }
2optobject加工函数的参数控制{ path: 'test' }
2opt.pathstring并发控制锁名称test
2opt.keyFnfunction计算并发锁名称的函数,第一个参数为 path, 之后为原函数的调用参数(path, name) => ${path}:${name}
2opt.minMSinteger0函数执行最小占用毫秒数,并发锁至少为保持这么长时间,单位毫秒1000
2opt.errorFnfunctiondefaultErrorFn函数请求并发锁错误时调用的错误处理函数,不设置则会调用 defaultErrorFnError
2opt.needWaitMSinteger0函数是否对应需要执行,没有申请到就等待,needWaitMS 是循环判断的时间间隔,单位毫秒Error
2opt.neverReturnBooleanfalse函数是否永不返回,相当于进程启动,只需要执行一次,后续一直不删除并发锁Error
0.2.1

3 years ago

0.1.2

3 years ago

0.2.0

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago