@fastify/under-pressure
Version:
Process load measuring plugin for Fastify, with automatic handling of 'Service Unavailable'
24 lines (20 loc) • 579 B
JavaScript
const fork = require('node:child_process').fork
const resolve = require('node:path').resolve
module.exports = function forkRequest (address, delay = 100, cb) {
const childProcess = fork(
resolve(__dirname, 'request.js'),
[address, delay],
{ windowsHide: true }
)
childProcess.on('message', (payload) => {
if (payload.error) {
cb(new Error(payload.error), JSON.parse(payload.response), payload.body)
return
}
cb(null, JSON.parse(payload.response), payload.body)
})
childProcess.on('error', err => {
cb(err)
})
}