X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=examples%2Ftypescript%2Fhttp-server-pool%2Fexpress-hybrid%2Fsrc%2Fexpress-worker.ts;h=7ba9f374f5fa248012fab50afb72e508f8391de4;hb=f7a9894d7812eb13a6e5e55d341798f543125ce8;hp=c6174a991d23c7ff18066f64486a1b2550de0fab;hpb=8ea47589a8f04b7018bd39c230d68de456c27bb0;p=poolifier.git diff --git a/examples/typescript/http-server-pool/express-hybrid/src/express-worker.ts b/examples/typescript/http-server-pool/express-hybrid/src/express-worker.ts index c6174a99..7ba9f374 100644 --- a/examples/typescript/http-server-pool/express-hybrid/src/express-worker.ts +++ b/examples/typescript/http-server-pool/express-hybrid/src/express-worker.ts @@ -1,11 +1,13 @@ -import type { Server } from 'http' -import type { AddressInfo } from 'net' +import type { Server } from 'node:http' +import type { AddressInfo } from 'node:net' + +import express, { type Express, type Request, type Response } from 'express' import { + availableParallelism, ClusterWorker, - DynamicThreadPool, - availableParallelism + DynamicThreadPool } from 'poolifier' -import express, { type Express, type Request, type Response } from 'express' + import { type ClusterWorkerData, type ClusterWorkerResponse, @@ -32,7 +34,7 @@ ClusterWorkerResponse workerData?: ClusterWorkerData ): ClusterWorkerResponse => { const { port, workerFile, minWorkers, maxWorkers, ...poolOptions } = - workerData as ClusterWorkerData + workerData! ExpressWorker.requestHandlerPool = new DynamicThreadPool< ThreadWorkerData, @@ -52,7 +54,7 @@ ClusterWorkerResponse application.all('/api/echo', (req: Request, res: Response) => { ExpressWorker.requestHandlerPool .execute({ data: req.body }, 'echo') - .then((response) => { + .then(response => { return res.send(response.data).end() }) .catch(emptyFunction) @@ -62,21 +64,22 @@ ClusterWorkerResponse const { number } = req.params ExpressWorker.requestHandlerPool .execute({ data: { number: parseInt(number) } }, 'factorial') - .then((response) => { + .then(response => { return res.send(response.data).end() }) .catch(emptyFunction) }) + let listenerPort: number | undefined ExpressWorker.server = application.listen(port, () => { + listenerPort = (ExpressWorker.server.address() as AddressInfo).port console.info( - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - `⚡️[express server]: Express server is started in cluster worker at http://localhost:${port}/` + `⚡️[express server]: Express server is started in cluster worker at http://localhost:${listenerPort}/` ) }) return { status: true, - port: (ExpressWorker.server.address() as AddressInfo)?.port ?? port + port: listenerPort ?? port } }