worker.js 881 B

12345678910111213141516171819202122232425262728293031
  1. const { ThreadWorker } = require('poolifier')
  2. const { kebabCase } = require('lodash')
  3. const path = require('node:path')
  4. // ----------------------------------------
  5. // Init Minimal Core
  6. // ----------------------------------------
  7. let WIKI = {
  8. IS_DEBUG: process.env.NODE_ENV === 'development',
  9. ROOTPATH: process.cwd(),
  10. INSTANCE_ID: 'worker',
  11. SERVERPATH: path.join(process.cwd(), 'server'),
  12. Error: require('./helpers/error'),
  13. configSvc: require('./core/config')
  14. }
  15. global.WIKI = WIKI
  16. WIKI.configSvc.init(true)
  17. WIKI.logger = require('./core/logger').init()
  18. // ----------------------------------------
  19. // Execute Task
  20. // ----------------------------------------
  21. module.exports = new ThreadWorker(async (job) => {
  22. WIKI.INSTANCE_ID = job.INSTANCE_ID
  23. const task = require(`./tasks/workers/${kebabCase(job.task)}.js`)
  24. await task(job)
  25. return true
  26. }, { async: true })