Newer
Older
process.title = 'Jetsam Queue Worker'
const { config, boot } = require('bootstrap')
const debug = require('debug')('server:worker:boot')
const Sentry = require('@sentry/node')
const bindQueue = require('core/utils/queue')
const pkg = require('./package.json')
let close = null
let done = false
async function main() {
await boot()
bindSentry()
const { queue } = require('services')
if (queue._initialise) {
await queue._initialise()
}
bindQueue()
close = await queue.listen()
await new Promise(async r => {
debug('Starting worker spin loop')
while (!done) {
await new Promise(rr => setTimeout(rr, 10))
}
debug('Ending worker spin loop')
r(true)
})
}
function bindSentry() {
const sentryUtil = require('vendor/sentry')
sentryUtil.configure()
debug('Binding sentry to process level errors')
process.on('error', err => {
Sentry.captureException(err)
main().catch(e => {
console.error(e)
Sentry.captureException(e)
process.exit(1)
})