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

我要开发同款
匿名用户2015年05月31日
45阅读
开发技术JavaScript
所属分类Node.js扩展、Web应用开发、Node.js 扩展
授权协议BSD

作品详情

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

使用场景

巨量同逻辑业务平稳处理

间歇性高并发系统

控制单用户占用资源过高

队列

queue-fun.Queue(q)

初始化队类参数q可传

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

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

实例化队列newqueue-fun.Queue()(runMax,con)

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

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

示例代码:

var queuefun = require('queue-fun');  //引入//初始化Promise异步队列类var Queue = queuefun.Queue(); //实列化最大并发为2的运行队列var queue1 = new Queue(2,{    "event_succ":function(data){console.log('queue-succ:',data)}  //成功    ,"event_err":function(err){console.log('queue-succ:',data)}  //失败}); var q = queuefun.Q;  //模块中简单实现了Q的基本功能,可以一试,//定义一个Promise风格的异步方法function testfun(i){    var deferred = q.defer();    setTimeout(function(){        if(i\ && i % 3 == 0){            deferred.reject(new Error("err " + i))        }else{            deferred.resolve(i)        }    },(Math.random() * 2000)>>0)    return deferred.promise;}//向队列添加运行单元queue1.push(testfun,[1]) //添加运行项queue1.go(testfun,[2]) //添加并自动启动队列queue1.go(testfun,[3],{Queue_event:0}) //添加不会触发队列 回调的运行项.queue1.go(testfun,[4]).then(    function(data){console.log('done-succ:',data)},    function(err){console.log('done-err:',err)})queue1.go(testfun,[5],{    event_succ:function(data){console.log('conf-succ:',data)},    event_err:function(err){console.log('conf-err:',err)}})
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论