Merge pull request #41 from Legonzaur/main

Node Clusters and additional header for request compression
This commit is contained in:
Legonzaur
2023-05-29 14:13:03 +02:00
committed by GitHub
2 changed files with 38 additions and 15 deletions
+4 -1
View File
@@ -139,7 +139,10 @@ router.get(
',' +
Math.abs(new Date().getTime() - timeStart.getTime()) / 1000 + ',' + req.originalUrl
)
res.status(200).send(data)
const dataString = JSON.stringify(data)
const buffer = Buffer.from(dataString)
const size = buffer.length
res.status(200).setHeader('X-File-Size', size).setHeader('Content-Type', 'application/json').send(buffer)
}
)
+34 -14
View File
@@ -1,4 +1,6 @@
import * as dotenv from 'dotenv'
import cluster from 'cluster'
import os from 'os'
dotenv.config()
import express from 'express'
import cors from 'cors'
@@ -7,25 +9,43 @@ import { dbReady } from './db/db'
import processAll from './process/process'
import listenKills from './process/onKill'
const app = express()
const cCPUs = os.cpus().length;
const port = 3000
app.use(express.json())
if (cluster.isPrimary) {
// Create a worker for each CPU
for (let i = 0; i < cCPUs; i++) {
cluster.fork();
}
cluster.on('online', function (worker) {
console.log('Worker ' + worker.process.pid + ' is online.');
});
cluster.on('exit', function (worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died.');
});
}
app.use(cors())
app.get('/', (req, res) => {
res.send('Tone client API online')
})
app.use('/', client)
export default
new Promise(async (resolve, reject) => {
await dbReady()
await processAll()
await listenKills()
const listenServer = app.listen(port, '0.0.0.0', () => {
console.log(`Tone client api listening on port ${port}`)
resolve(listenServer)
})
if (!cluster.isPrimary) {
const app = express()
app.use(express.json())
app.use(cors({ exposedHeaders: ['X-File-Size', 'Content-Encoding'] }))
app.get('/', (req, res) => {
res.send('Tone client API online')
})
app.use('/', client)
await dbReady()
await processAll()
await listenKills()
const listenServer = app.listen(port, '0.0.0.0', () => {
console.log(`Tone client api listening on port ${port}`)
resolve(listenServer)
})
}
})