In-memory, error handling (retry) function queue, with the ability to throttle simultaneous executions.
npm install fqueueFunction Queue
==============
npm install fqueue`
$3
Please have a look at the examples.
Class FunctionQueue
-------------------
Inherits from events.EventEmitter
$3
`scope` (default: this)
`maxPending` (default: -1)
Maximum asynchronous jobs.
Useful to throttle the number of simultaneous disk-operations.
`maxAttempts` (default: 3)
Maximum reattempts on error.
Set to 0 to disable reattempts.
Set to -1 for infinite reattempts.
`attemptTimeout` (default: 5000 ms)
Minimum time to wait before reattempt. In milliseconds.
Useful to let network-drives remount, etc.
$3
.scope
.maxPending
.maxAttempts
.attemptTimeout
.running
.paused
.pending
.dequeued
.warnings
.errors
.attempts
.queue
$3
this `.start(func, args [, scope [, timeout]])`
Starts the function-queue.
this `.enqueue(func, args [, scope [, timeout]])`
Enqueues a function for later execution.
this `.done()`
Tell the function-queue that the function has done execution.
this `.error(err, func, args [, scope [, maxAttempts [, timeout]]])`
Tell the function-queue about an error. This either initiates an
reattempt or emits the 'error' event.
Notice: You need to call `.done()` even if the function
called `.error([..])`.
#### General Methods
boolean `.isEmpty()`
Returns `true` if the queue is empty, otherwise `false`
this `.pause()`
Pauses the execution of functions. Emits the 'pause' event after
all pending functions completed.
this `.resume()``