@domain.js/parallel

    0.2.1 • Public • Published

    @domain.js/parallel

    Build status codecov

    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

    Install

    npm i @domain.js/parallel

    DownloadsWeekly Downloads

    7

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    6.5 kB

    Total Files

    3

    Last publish

    Collaborators

    • stonephp