wikijs-fork/server/worker.js

71 lines
1.9 KiB
JavaScript
Raw Normal View History

2017-07-29 04:11:22 +00:00
'use strict'
2017-07-29 04:11:22 +00:00
/* global wiki */
2017-07-29 04:11:22 +00:00
const path = require('path')
2017-07-29 21:33:08 +00:00
wiki.REPOPATH = path.resolve(wiki.ROOTPATH, wiki.config.paths.repo)
wiki.DATAPATH = path.resolve(wiki.ROOTPATH, wiki.config.paths.data)
wiki.UPLTEMPPATH = path.join(wiki.DATAPATH, 'temp-upload')
// ----------------------------------------
// Load global modules
// ----------------------------------------
2017-07-29 21:33:08 +00:00
// wiki.upl = require('./modules/uploads-agent').init()
// wiki.git = require('./modules/git').init()
// wiki.entries = require('./modules/entries').init()
2017-07-29 04:11:22 +00:00
wiki.lang = require('i18next')
wiki.mark = require('./modules/markdown')
// ----------------------------------------
2017-07-29 21:33:08 +00:00
// Load local modules
// ----------------------------------------
const Promise = require('bluebird')
2017-05-13 21:03:32 +00:00
const i18nBackend = require('i18next-node-fs-backend')
2017-05-04 02:10:12 +00:00
// ----------------------------------------
// Localization Engine
// ----------------------------------------
2017-07-29 04:11:22 +00:00
wiki.lang.use(i18nBackend).init({
load: 'languageOnly',
ns: ['common', 'admin', 'auth', 'errors', 'git'],
defaultNS: 'common',
saveMissing: false,
preload: [wiki.config.lang],
lng: wiki.config.lang,
fallbackLng: 'en',
backend: {
loadPath: path.join(wiki.SERVERPATH, 'locales/{{lng}}/{{ns}}.json')
}
})
2017-05-04 02:10:12 +00:00
// ----------------------------------------
2017-07-29 21:33:08 +00:00
// Start Queues
// ----------------------------------------
2017-07-29 21:33:08 +00:00
const Bull = require('bull')
const autoload = require('auto-load')
2017-02-09 01:52:37 +00:00
2017-07-29 21:33:08 +00:00
let queues = autoload(path.join(wiki.SERVERPATH, 'queues'))
2017-02-09 01:52:37 +00:00
2017-07-29 21:33:08 +00:00
Promise.join(
wiki.db.onReady
// wiki.upl.initialScan()
).then(() => {
for (let queueName in queues) {
new Bull(queueName, { redis: wiki.config.redis }).process(queues[queueName])
}
2017-02-09 01:52:37 +00:00
})
// ----------------------------------------
// Shutdown gracefully
// ----------------------------------------
process.on('disconnect', () => {
2017-07-29 21:33:08 +00:00
wiki.logger.warn('Lost connection to Master. Exiting...')
2017-02-09 01:52:37 +00:00
process.exit()
})