build(deps-dev): apply updates
[poolifier.git] / examples / typescript / http-server-pool / fastify-hybrid / src / main.ts
index ca7c42d4b6c59c626235d9cc50821446a86db95f..74ed1f70158ce7876e717ab844cd16e8e7a3b58f 100644 (file)
@@ -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(
@@ -17,35 +19,39 @@ const pool = new FixedClusterPool<ClusterWorkerData, ClusterWorkerResponse>(
   Math.round(availableParallelism() / 2),
   fastifyWorkerFile,
   {
+    enableEvents: false,
     onlineHandler: () => {
       pool
         .execute({
           port: 8080,
           workerFile: requestHandlerWorkerFile,
-          maxWorkers: Math.round(availableParallelism() / 2),
+          maxWorkers:
+            Math.round(availableParallelism() / 4) < 1
+              ? 1
+              : Math.round(availableParallelism() / 4),
           enableTasksQueue: true,
           tasksQueueOptions: {
-            concurrency: 8
+            concurrency: 8,
           },
           errorHandler: (e: Error) => {
             console.error('Thread worker error', e)
-          }
+          },
         })
-        .then((response) => {
+        .then(response => {
           if (response.status) {
             console.info(
               // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
-              `Fastify is listening in cluster worker on port ${response.port}`
+              `Fastify is listening in cluster worker on port ${response.port?.toString()}`
             )
           }
-          return null
+          return undefined
         })
-        .catch((error) => {
+        .catch((error: unknown) => {
           console.error('Fastify failed to start in cluster worker:', error)
         })
     },
     errorHandler: (e: Error) => {
       console.error('Cluster worker error:', e)
-    }
+    },
   }
 )