Skip to content

Repository files navigation

task-queue-node

!!!!!!!!! this is sync task queue !!!!!!!!!!!!!!

Install

npm

npm install task-queue-node --save 

Usage

vartaskQueue=require('./index')varPromise=require('bluebird')varrequest=require('request')vartask=taskQueue.createTask({interval: 200,wait: true,taskCommand: function(args){// taskCommand must return promisereturnnewPromise(function(resolve,reject){console.log(newDate().getTime(),args)setTimeout(()=>{resolve(args+' success')},300)})},autoStart: false})// Use multiple taskQueuevartask1=taskQueue.createTask({interval: 200,wait: true,taskCommand: commandFunc,max: 20})varcommandFunc=function(){returnnewPromise(function(resolve,reject){request('http://www.baidu.com',function(){resolve(args+' success')})})}// listen every task execute complate eventtask1.subscribe((err,result)=>{//result is taskCommand resolveif(err){console.error(err,'subscribe')}else{console.log(result)}})

Example

  • See the test.js file for more examples.

Params && Event

ParamsDescription
intervaltask execute interval(ms),default:1000.
keyqueue name,default:taskQueue.
autoStartwhen the queue is empty,use addQueue auto execute start event, default:true.
waitThe next task will wait taskCommand resolve for execution, default:false.
ignoreErrorset the false,taskCommand reject stop all task when, default:true.
taskCommandtask's Processing method,must is return promise,you can use bluebird.
firstDelayfirst task is delay default:true (Not realized).
maxqueue max task number,beyond will be truncated before default:0,set 0 no limit.
EventDescription
startstart execute task.
stopstop execute task.
restartrestart task queue.
clearclear queue.
addQueueadd task to queue.
subscribesubscribe taskCommand resolve and reject event.
removeSubscriberemove subscribe event.

TODO

  • 集成redis用于分布式部署
  • 实现firstDelay功能

About

task quee for node.js

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages