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=56fad6d1b9edec47d79dd4e283dfe638e9507dfd;hpb=7d9756e3c95d4f46fab5f17080b107b825ec3890;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 56fad6d1..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, @@ -15,7 +17,7 @@ import { } from './types.js' const emptyFunction = (): void => { - /** Intentional */ + /* Intentional */ } class ExpressWorker extends ClusterWorker< @@ -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,23 +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:${workerData?.port}/` + `⚡️[express server]: Express server is started in cluster worker at http://localhost:${listenerPort}/` ) }) return { status: true, - port: - (ExpressWorker.server.address() as AddressInfo)?.port ?? - workerData?.port + port: listenerPort ?? port } }