"license": "ISC",
"dependencies": {
"express": "^4.19.2",
- "poolifier": "^3.1.27"
+ "poolifier": "^3.1.28"
},
"devDependencies": {
"@rollup/plugin-typescript": "^11.1.6",
specifier: ^4.19.2
version: 4.19.2
poolifier:
- specifier: ^3.1.27
- version: 3.1.27
+ specifier: ^3.1.28
+ version: 3.1.28
devDependencies:
'@rollup/plugin-typescript':
engines: {node: '>=8.6'}
dev: true
- /poolifier@3.1.27:
- resolution: {integrity: sha512-gksnD2HqsyOa7rHPZ8KaLNrGYUi5tu4kyWi/a2NehvYZZVJGjiNbOy8/lAoSa6nqbb8cTZD9vdQqnFQl+IdkEw==}
+ /poolifier@3.1.28:
+ resolution: {integrity: sha512-VAcfl1TlLA6cjYWksF1N8dKIFSqmyolvCYXiRDXV0YRoHh4XBsUmkSBbBdrIblJDrKu32+ERxFw0B89XCuXuUg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
requiresBuild: true
dev: false
"license": "ISC",
"dependencies": {
"fastify": "^4.26.2",
- "poolifier": "^3.1.27"
+ "poolifier": "^3.1.28"
},
"devDependencies": {
"@rollup/plugin-typescript": "^11.1.6",
specifier: ^4.26.2
version: 4.26.2
poolifier:
- specifier: ^3.1.27
- version: 3.1.27
+ specifier: ^3.1.28
+ version: 3.1.28
devDependencies:
'@rollup/plugin-typescript':
thread-stream: 2.4.1
dev: false
- /poolifier@3.1.27:
- resolution: {integrity: sha512-gksnD2HqsyOa7rHPZ8KaLNrGYUi5tu4kyWi/a2NehvYZZVJGjiNbOy8/lAoSa6nqbb8cTZD9vdQqnFQl+IdkEw==}
+ /poolifier@3.1.28:
+ resolution: {integrity: sha512-VAcfl1TlLA6cjYWksF1N8dKIFSqmyolvCYXiRDXV0YRoHh4XBsUmkSBbBdrIblJDrKu32+ERxFw0B89XCuXuUg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
requiresBuild: true
dev: false
"license": "ISC",
"dependencies": {
"nodemailer": "^6.9.13",
- "poolifier": "^3.1.27"
+ "poolifier": "^3.1.28"
},
"devDependencies": {
"@types/node": "^20.12.2",
specifier: ^6.9.13
version: 6.9.13
poolifier:
- specifier: ^3.1.27
- version: 3.1.27
+ specifier: ^3.1.28
+ version: 3.1.28
devDependencies:
'@types/node':
engines: {node: '>=6.0.0'}
dev: false
- /poolifier@3.1.27:
- resolution: {integrity: sha512-gksnD2HqsyOa7rHPZ8KaLNrGYUi5tu4kyWi/a2NehvYZZVJGjiNbOy8/lAoSa6nqbb8cTZD9vdQqnFQl+IdkEw==}
+ /poolifier@3.1.28:
+ resolution: {integrity: sha512-VAcfl1TlLA6cjYWksF1N8dKIFSqmyolvCYXiRDXV0YRoHh4XBsUmkSBbBdrIblJDrKu32+ERxFw0B89XCuXuUg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
requiresBuild: true
dev: false
"author": "",
"license": "ISC",
"dependencies": {
- "poolifier": "^3.1.27",
+ "poolifier": "^3.1.28",
"ws": "^8.16.0"
},
"devDependencies": {
dependencies:
poolifier:
- specifier: ^3.1.27
- version: 3.1.27
+ specifier: ^3.1.28
+ version: 3.1.28
ws:
specifier: ^8.16.0
version: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)
engines: {node: '>=8.6'}
dev: true
- /poolifier@3.1.27:
- resolution: {integrity: sha512-gksnD2HqsyOa7rHPZ8KaLNrGYUi5tu4kyWi/a2NehvYZZVJGjiNbOy8/lAoSa6nqbb8cTZD9vdQqnFQl+IdkEw==}
+ /poolifier@3.1.28:
+ resolution: {integrity: sha512-VAcfl1TlLA6cjYWksF1N8dKIFSqmyolvCYXiRDXV0YRoHh4XBsUmkSBbBdrIblJDrKu32+ERxFw0B89XCuXuUg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
requiresBuild: true
dev: false
"author": "",
"license": "ISC",
"dependencies": {
- "poolifier": "^3.1.27",
+ "poolifier": "^3.1.28",
"ws": "^8.16.0"
},
"devDependencies": {
dependencies:
poolifier:
- specifier: ^3.1.27
- version: 3.1.27
+ specifier: ^3.1.28
+ version: 3.1.28
ws:
specifier: ^8.16.0
version: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)
engines: {node: '>=8.6'}
dev: true
- /poolifier@3.1.27:
- resolution: {integrity: sha512-gksnD2HqsyOa7rHPZ8KaLNrGYUi5tu4kyWi/a2NehvYZZVJGjiNbOy8/lAoSa6nqbb8cTZD9vdQqnFQl+IdkEw==}
+ /poolifier@3.1.28:
+ resolution: {integrity: sha512-VAcfl1TlLA6cjYWksF1N8dKIFSqmyolvCYXiRDXV0YRoHh4XBsUmkSBbBdrIblJDrKu32+ERxFw0B89XCuXuUg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
requiresBuild: true
dev: false
"author": "",
"license": "ISC",
"dependencies": {
- "poolifier": "^3.1.27",
+ "poolifier": "^3.1.28",
"ws": "^8.16.0"
},
"devDependencies": {
dependencies:
poolifier:
- specifier: ^3.1.27
- version: 3.1.27
+ specifier: ^3.1.28
+ version: 3.1.28
ws:
specifier: ^8.16.0
version: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)
requiresBuild: true
dev: false
- /poolifier@3.1.27:
- resolution: {integrity: sha512-gksnD2HqsyOa7rHPZ8KaLNrGYUi5tu4kyWi/a2NehvYZZVJGjiNbOy8/lAoSa6nqbb8cTZD9vdQqnFQl+IdkEw==}
+ /poolifier@3.1.28:
+ resolution: {integrity: sha512-VAcfl1TlLA6cjYWksF1N8dKIFSqmyolvCYXiRDXV0YRoHh4XBsUmkSBbBdrIblJDrKu32+ERxFw0B89XCuXuUg==}
engines: {node: '>=18.0.0', pnpm: '>=8.6.0'}
requiresBuild: true
dev: false
* Whether the pool is destroying or not.
*/
private destroying: boolean
+ /**
+ * Whether the minimum number of workers is starting or not.
+ */
+ private startingMinimumNumberOfWorkers: boolean
/**
* Whether the pool ready event has been emitted or not.
*/
this.starting = false
this.destroying = false
this.readyEventEmitted = false
+ this.startingMinimumNumberOfWorkers = false
if (this.opts.startWorkers === true) {
this.start()
}
* Starts the minimum number of workers.
*/
private startMinimumNumberOfWorkers (): void {
+ this.startingMinimumNumberOfWorkers = true
while (
this.workerNodes.reduce(
(accumulator, workerNode) =>
) {
this.createAndSetupWorkerNode()
}
+ this.startingMinimumNumberOfWorkers = false
}
/** @inheritdoc */
) {
if (workerNode.info.dynamic) {
this.createAndSetupDynamicWorkerNode()
- } else {
+ } else if (!this.startingMinimumNumberOfWorkers) {
this.startMinimumNumberOfWorkers()
}
}
)
workerNode.registerOnceWorkerEventHandler('exit', () => {
this.removeWorkerNode(workerNode)
- if (this.started && !this.destroying) {
+ if (
+ this.started &&
+ !this.startingMinimumNumberOfWorkers &&
+ !this.destroying
+ ) {
this.startMinimumNumberOfWorkers()
}
})