qb-relyq
v2.1.0
Published
relyq backend for QB
Downloads
8
Readme
qb-relyq
relyq queue and push components for qb. It uses a simple and reliable work queue implemented with redis using simpleq.
Only works with qb v2.0+
Usage
npm install qb qb-relyq --save
var QB = require('qb').backend(require('qb-relyq'))
, qb = new QB(qbOptions)
// To use relyq as a work queue:
qb.component(require('qb-relyq').queue, relyqOptions)
// OR to just push onto other service's relyqs:
qb.component(require('qb-relyq').push, relyqOptions)
Configuration
The relyqOptions
above take the following options:
Push and Queue Component options
createRedis
Afunction () { return redisClient }
that is REQUIRED.prefix
The relyq redis keys will be prefixed by this (default:'qb'
)delimeter
The delimeter to connect the prefix, the string'service'
and the service type (default:':'
)Q
The relyq Queue Type. See relyq docs for details. (default:'RedisJsonQ'
)allow_defer
Allow deferred tasks (default:false
)defer_field
Field where the timestamp signifying a deferred task (default:'when'
)allow_recur
Allow recurring tasks (default:false
)recur_field
Field where the millisecond recurring interval is signifying a recurring task (default:'every'
)
Queue Component options
specific
An optional object of service type to options. When instantiating a queue withqb-relyq
, specific options for each queue can be detailed in here. For example:specific: { myservice: { prefix: 'myservice' } }
, which will be used whenqb.can('myservice', myserviceCallback)
clean_finish
Don't keep jobs around in thefinished
sub-queue. (default:true
)max_concurrent_callbacks
Limit on concurrent callbacks from this queue (default:100
)blocking_timeout
Seconds of long-polling redis when waiting for new tasks. This will affect how long shutdown takes. (default:5
)defer_polling_interval
Millisecond interval between deferred task checking (default:1000
)recur_polling_interval
Millisecond interval between recurring task checking (default:60000
)
Notes
- Recurring tasks must include an ID so that they are not duplicated. The ID field defaults is 'id'.
License
MIT in LICENSE file