1.0.3 • Published 7 years ago

task-queue-node v1.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

task-queue-node

Install

npm

npm install task-queue-node --save 

Usage

    var taskQueue = require('./index')
    var Promise = require('bluebird')
    var request = require('request')
    
    var task = taskQueue.createTask({
      interval: 200,
      wait: true,
      taskCommand: function (args) { // taskCommand must return promise
        return new Promise(function (resolve, reject) {
          console.log(new Date().getTime(), args)
          setTimeout(() => {
            resolve(args + ' success')
          }, 300)
        })
      },
      autoStart: false
    })
    
    // Use multiple taskQueue
    var task1 = taskQueue.createTask({
      interval: 200,
      wait: true,
      taskCommand: commandFunc,
      max: 20
    })
    var commandFunc = function(){
        return new Promise(function (resolve, reject) {
          request('http://www.baidu.com',function(){
            resolve(args + ' success')
          })
        })
    }
    
    // listen every task execute complate event
    task1.subscribe((err, result) => { //result is taskCommand resolve
      if (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功能
1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago