worker.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. 'use strict'
  2. /* global wiki */
  3. const path = require('path')
  4. wiki.REPOPATH = path.resolve(wiki.ROOTPATH, wiki.config.paths.repo)
  5. wiki.DATAPATH = path.resolve(wiki.ROOTPATH, wiki.config.paths.data)
  6. wiki.UPLTEMPPATH = path.join(wiki.DATAPATH, 'temp-upload')
  7. // ----------------------------------------
  8. // Load global modules
  9. // ----------------------------------------
  10. // wiki.upl = require('./modules/uploads-agent').init()
  11. // wiki.git = require('./modules/git').init()
  12. // wiki.entries = require('./modules/entries').init()
  13. wiki.lang = require('i18next')
  14. wiki.mark = require('./modules/markdown')
  15. // ----------------------------------------
  16. // Load local modules
  17. // ----------------------------------------
  18. const Promise = require('bluebird')
  19. const i18nBackend = require('i18next-node-fs-backend')
  20. // ----------------------------------------
  21. // Localization Engine
  22. // ----------------------------------------
  23. wiki.lang.use(i18nBackend).init({
  24. load: 'languageOnly',
  25. ns: ['common', 'admin', 'auth', 'errors', 'git'],
  26. defaultNS: 'common',
  27. saveMissing: false,
  28. preload: [wiki.config.lang],
  29. lng: wiki.config.lang,
  30. fallbackLng: 'en',
  31. backend: {
  32. loadPath: path.join(wiki.SERVERPATH, 'locales/{{lng}}/{{ns}}.json')
  33. }
  34. })
  35. // ----------------------------------------
  36. // Start Queues
  37. // ----------------------------------------
  38. const Bull = require('bull')
  39. const autoload = require('auto-load')
  40. let queues = autoload(path.join(wiki.SERVERPATH, 'queues'))
  41. Promise.join(
  42. wiki.db.onReady
  43. // wiki.upl.initialScan()
  44. ).then(() => {
  45. for (let queueName in queues) {
  46. new Bull(queueName, { redis: wiki.config.redis }).process(queues[queueName])
  47. }
  48. })
  49. // ----------------------------------------
  50. // Shutdown gracefully
  51. // ----------------------------------------
  52. process.on('disconnect', () => {
  53. wiki.logger.warn('Lost connection to Master. Exiting...')
  54. process.exit()
  55. })