1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 'use strict'
- // ===========================================
- // Wiki.js
- // Licensed under AGPLv3
- // ===========================================
- const path = require('path')
- const cluster = require('cluster')
- let wiki = {
- IS_DEBUG: process.env.NODE_ENV === 'development',
- IS_MASTER: cluster.isMaster,
- ROOTPATH: process.cwd(),
- SERVERPATH: path.join(process.cwd(), 'server'),
- configSvc: require('./modules/config')
- }
- global.wiki = wiki
- process.env.VIPS_WARNING = false
- // if (wiki.IS_DEBUG) {
- // require('@glimpse/glimpse').init()
- // }
- wiki.configSvc.init()
- // ----------------------------------------
- // Init Logger
- // ----------------------------------------
- wiki.logger = require('./modules/logger').init()
- // ----------------------------------------
- // Init DB
- // ----------------------------------------
- wiki.db = require('./modules/db').init()
- // ----------------------------------------
- // Start Cluster
- // ----------------------------------------
- const numCPUs = require('os').cpus().length
- let numWorkers = (wiki.config.workers > 0) ? wiki.config.workers : numCPUs
- if (numWorkers > numCPUs) {
- numWorkers = numCPUs
- }
- if (cluster.isMaster) {
- wiki.logger.info('=======================================')
- wiki.logger.info('= Wiki.js =============================')
- wiki.logger.info('=======================================')
- require('./master').then(() => {
- // -> Create background workers
- for (let i = 0; i < numWorkers; i++) {
- cluster.fork()
- }
- // -> Queue post-init tasks
- wiki.queue.uplClearTemp.add({}, {
- repeat: { cron: '*/15 * * * *' }
- })
- })
- cluster.on('exit', (worker, code, signal) => {
- wiki.logger.info(`Background Worker #${worker.id} was terminated.`)
- })
- } else {
- wiki.logger.info(`Background Worker #${cluster.worker.id} is initializing...`)
- require('./worker')
- }
|