queue-fun 基于Promise的nodejs队列控制模块开源项目

我要开发同款
匿名用户2015年05月31日
82阅读

技术信息

开源地址
https://github.com/cnwhy/queue-fun
授权协议
BSD

作品详情

queue-fu是基于Promise的运行队列控制类。

使用场景

巨量同逻辑业务平稳处理

间歇性高并发系统

控制单用户占用资源过高

队列

queue-fu.Queue(q)

初始化队类参数q可传

无参数队列使用内置的实现的Promise;

q/ES6原生Promise插入队列方法:pushushiftgojump返回对应的promise

实例化队列ewqueue-fu.Queue()(ruMax,co)

ruMax并行运行队列方法的最大个数

co配置队列开始结束事件,运行单元的成功,失败事件及配置执行单元出错的重试机制。

示例代码:

var queuefu = require('queue-fu');  //引入//初始化Promise异步队列类var Queue = queuefu.Queue(); //实列化最大并发为2的运行队列var queue1 = ew Queue(2,{    "evet_succ":fuctio(data){cosole.log('queue-succ:',data)}  //成功    ,"evet_err":fuctio(err){cosole.log('queue-succ:',data)}  //失败}); var q = queuefu.Q;  //模块中简单实现了Q的基本功能,可以一试,//定义一个Promise风格的异步方法fuctio testfu(i){    var deferred = q.defer();    setTimeout(fuctio(){        if(i\ && i % 3 == 0){            deferred.reject(ew Error("err " + i))        }else{            deferred.resolve(i)        }    },(Math.radom() * 2000)>>0)    retur deferred.promise;}//向队列添加运行单元queue1.push(testfu,[1]) //添加运行项queue1.go(testfu,[2]) //添加并自动启动队列queue1.go(testfu,[3],{Queue_evet:0}) //添加不会触发队列 回调的运行项.queue1.go(testfu,[4]).the(    fuctio(data){cosole.log('doe-succ:',data)},    fuctio(err){cosole.log('doe-err:',err)})queue1.go(testfu,[5],{    evet_succ:fuctio(data){cosole.log('cof-succ:',data)},    evet_err:fuctio(err){cosole.log('cof-err:',err)}})

功能介绍

queue-fun 是基于Promise的 运行队列控制类。 使用场景 巨量同逻辑业务平稳处理 间歇性高并发系统 控制单用户占用资源过高 队列 queue-fun.Queue(q) 初始化队类 ...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论