-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathqMaster.js
36 lines (32 loc) · 1.09 KB
/
qMaster.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var Queue = require('rethinkdb-job-queue'),
config = require('./config'),
discover = require('./lib/discover'),
log;
discover().then(function(ip) {
if (ip !== null) config.rethinkdb.host = ip;
var messageQ = new Queue(config.rethinkdb, {
name: 'jobQueue',
// For the sake of review, we will remove finished jobs after 24 hours
removeFinishedJobs: 24 * 60 * 60 * 1000,
// This is a master queue
masterInterval: (15 * 60 * 1000) + (10 * 1000)
});
if (!!config.graylog) {
log = require('bunyan').createLogger({
name: 'API-Queue-Master',
streams: [{
type: 'raw',
stream: require('gelf-stream').forBunyan(config.graylog.host, config.graylog.port)
}]
});
}else{
log = require('bunyan').createLogger({
name: 'API-Queue-Master'
});
}
messageQ.on('error', function(e) {
log.error({ message: 'Error thrown from Queue', error: '[' + e.name + '] ' + e.message, stack: e.stack })
process.exit(1)
})
log.info('Process ' + process.pid + ' is running as Queue Master')
})