Commit e57be634f673cd8157ff88a3431783ed35836643
1 parent
cfdcd17330
Exists in
master
and in
1 other branch
Auto jumlah anak
Showing 2 changed files with 6 additions and 3 deletions Inline Diff
config.sample.json
1 | { | 1 | { |
2 | "name": "HTTPGETX", | 2 | "name": "HTTPGETX", |
3 | 3 | ||
4 | "# core_url": "Silahkan diisi dengan core url, bisa dikosongkan jika ingin membaca dari main config komodo", | 4 | "# core_url": "Silahkan diisi dengan core url, bisa dikosongkan jika ingin membaca dari main config komodo", |
5 | "core_url": "", | 5 | "core_url": "", |
6 | 6 | ||
7 | "listener": { | 7 | "listener": { |
8 | "partner": { | 8 | "partner": { |
9 | "port": 25614 | 9 | "port": 25614 |
10 | } | 10 | } |
11 | }, | 11 | }, |
12 | 12 | ||
13 | "cluster": 0 | 13 | "# cluster": "Diisi dengan boolean atau angka jumlah anak yang akan dibuat. Jika diisi boolean true, jumlah anak akan dihitung otomatis", |
14 | "cluster": false | ||
14 | } | 15 | } |
index.js
1 | process.chdir(__dirname); | 1 | process.chdir(__dirname); |
2 | |||
2 | const fs = require('fs'); | 3 | const fs = require('fs'); |
4 | const numCPUs = require('os').cpus().length; | ||
3 | 5 | ||
4 | fs.writeFileSync('pid.txt', process.pid); | 6 | fs.writeFileSync('pid.txt', process.pid); |
5 | 7 | ||
6 | const config = require('komodo-sdk/config'); | 8 | const config = require('komodo-sdk/config'); |
7 | 9 | ||
8 | global.KOMODO_LOG_LABEL = `KOMODO-CENTER@${config.name || 'HTTPGETX'}`; | 10 | global.KOMODO_LOG_LABEL = `KOMODO-CENTER@${config.name || 'HTTPGETX'}`; |
9 | process.title = global.KOMODO_LOG_LABEL; | 11 | process.title = global.KOMODO_LOG_LABEL; |
10 | 12 | ||
11 | const cluster = require('cluster'); | 13 | const cluster = require('cluster'); |
12 | const logger = require('komodo-sdk/logger'); | 14 | const logger = require('komodo-sdk/logger'); |
13 | 15 | ||
14 | if (config.cluster && cluster.isMaster) { | 16 | if (config.cluster && cluster.isMaster) { |
15 | logger.info(`Running on cluster mode. Master ${process.pid} is running`); | 17 | logger.info(`Running on cluster mode. Master ${process.pid} is running`); |
16 | 18 | ||
17 | // eslint-disable-next-line no-plusplus | 19 | const numberOfChildren = config.cluster === true ? numCPUs + 1 : config.cluster; |
18 | for (let i = 0; i < config.cluster; i++) { | 20 | for (let i = 0; i < numberOfChildren; i += 1) { |
19 | cluster.fork(); | 21 | cluster.fork(); |
20 | } | 22 | } |
21 | } else { | 23 | } else { |
22 | if (config.cluster) { | 24 | if (config.cluster) { |
23 | logger.info(`Worker ${process.pid} started`); | 25 | logger.info(`Worker ${process.pid} started`); |
24 | } | 26 | } |
25 | 27 | ||
26 | // eslint-disable-next-line global-require | 28 | // eslint-disable-next-line global-require |
27 | require('./lib/core-callback'); | 29 | require('./lib/core-callback'); |
28 | // eslint-disable-next-line global-require | 30 | // eslint-disable-next-line global-require |
29 | require('./lib/listener-partner'); | 31 | require('./lib/listener-partner'); |
30 | } | 32 | } |
31 | 33 |