@domain.js/parallel
0.2.1 • Public • Published
@domain.js/parallel
Installation
npm i @domain.js/parallel --save
cnf
专属配置名称 parallel
名称 |
类型 |
必填 |
默认值 |
描述 |
样例 |
key |
string |
是 |
否 |
记录并发锁的 redis 记录key |
parallels |
defaultErrorFn |
funtion |
是 |
否 |
处理并发锁申请错误函数 |
Error |
deps
模块名 |
别名 |
用到的方法 |
描述 |
logger |
无 |
info |
输出观点时刻的信息,便于分析日志 |
graceful |
无 |
exit |
注册进程退出的执行函数,便于在退出时清理残留锁 |
redis |
无 |
hsetnx, hdel, hexists |
并发锁利用 redis hash 类型数据实现 |
utils |
U |
sleep |
实现在申请锁的等待功能 |
async |
无 |
whilst |
实现在申请锁,需要等待的时候循环等待 |
Usage
功能 |
描述 |
样例 |
parallel |
封装一个函数,使其拥有并发控制的能力,不改变其原有行为 |
parallel(fn, { path: 'test' }) |
parallel 函数参数
顺序 |
参数名 |
类型 |
必填 |
默认值 |
描述 |
样例 |
1 |
fn |
function |
是 |
无 |
要加工处理的函数 |
const test = () => { } |
2 |
opt |
object |
是 |
无 |
加工函数的参数控制 |
{ path: 'test' } |
2 |
opt.path |
string |
是 |
无 |
并发控制锁名称 |
test |
2 |
opt.keyFn |
function |
否 |
无 |
计算并发锁名称的函数,第一个参数为 path, 之后为原函数的调用参数 |
(path, name) => ${path}:${name}
|
2 |
opt.minMS |
integer |
否 |
0 |
函数执行最小占用毫秒数,并发锁至少为保持这么长时间,单位毫秒 |
1000 |
2 |
opt.errorFn |
function |
否 |
defaultErrorFn |
函数请求并发锁错误时调用的错误处理函数,不设置则会调用 defaultErrorFn |
Error |
2 |
opt.needWaitMS |
integer |
否 |
0 |
函数是否对应需要执行,没有申请到就等待,needWaitMS 是循环判断的时间间隔,单位毫秒 |
Error |
2 |
opt.neverReturn |
Boolean |
否 |
false |
函数是否永不返回,相当于进程启动,只需要执行一次,后续一直不删除并发锁 |
Error |
Package Sidebar
Install
npm i @domain.js/parallel
Weekly Downloads