X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=examples%2Ftypescript%2Fhttp-server-pool%2Ffastify-hybrid%2Fsrc%2Fmain.ts;h=fea592c4b180291e68c50b8844ae0f6e3d1eb290;hb=13433f995078fad09dbe8efe59fe614de82a05e4;hp=8a17f89318da14164c4b3a144fe95e823677900d;hpb=3b3115396965edad0cf3fefc4f9081977310da34;p=poolifier.git diff --git a/examples/typescript/http-server-pool/fastify-hybrid/src/main.ts b/examples/typescript/http-server-pool/fastify-hybrid/src/main.ts index 8a17f893..fea592c4 100644 --- a/examples/typescript/http-server-pool/fastify-hybrid/src/main.ts +++ b/examples/typescript/http-server-pool/fastify-hybrid/src/main.ts @@ -1,6 +1,8 @@ import { dirname, extname, join } from 'node:path' import { fileURLToPath } from 'node:url' -import { FixedClusterPool, availableParallelism } from 'poolifier' + +import { availableParallelism, FixedClusterPool } from 'poolifier' + import type { ClusterWorkerData, ClusterWorkerResponse } from './types.js' const fastifyWorkerFile = join( @@ -8,24 +10,43 @@ const fastifyWorkerFile = join( `fastify-worker${extname(fileURLToPath(import.meta.url))}` ) +const requestHandlerWorkerFile = join( + dirname(fileURLToPath(import.meta.url)), + `request-handler-worker${extname(fileURLToPath(import.meta.url))}` +) + const pool = new FixedClusterPool( Math.round(availableParallelism() / 2), fastifyWorkerFile, { + enableEvents: false, onlineHandler: () => { pool - .execute({ port: 8080 }) + .execute({ + port: 8080, + workerFile: requestHandlerWorkerFile, + maxWorkers: + Math.round(availableParallelism() / 4) < 1 + ? 1 + : Math.round(availableParallelism() / 4), + enableTasksQueue: true, + tasksQueueOptions: { + concurrency: 8 + }, + errorHandler: (e: Error) => { + console.error('Thread worker error', e) + } + }) .then(response => { if (response.status) { console.info( - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - `Fastify is listening on worker on port ${response.port}` + `Fastify is listening in cluster worker on port ${response.port}` ) } - return null + return undefined }) - .catch(error => { - console.error('Fastify failed to start on worker:', error) + .catch((error: unknown) => { + console.error('Fastify failed to start in cluster worker:', error) }) }, errorHandler: (e: Error) => {