refactor: use poolifier worker error handling in examples
authorJérôme Benoit <jerome.benoit@sap.com>
Sat, 12 Aug 2023 22:41:49 +0000 (00:41 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sat, 12 Aug 2023 22:41:49 +0000 (00:41 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
examples/typescript/http-server-pool/fastify-cluster/src/main.ts
examples/typescript/http-server-pool/fastify-cluster/src/types.ts
examples/typescript/http-server-pool/fastify-cluster/src/worker.ts
examples/typescript/websocket-server-pool/ws-cluster/src/main.ts
examples/typescript/websocket-server-pool/ws-cluster/src/types.ts
examples/typescript/websocket-server-pool/ws-cluster/src/worker.ts

index 882c1acdad98376691c698f88943f8cfe6fef1fb..ec117cbc4df0410993ae9eadef781992438d9602 100644 (file)
@@ -21,13 +21,11 @@ const pool = new FixedClusterPool<WorkerData, WorkerResponse>(
               // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
               `Fastify is listening on worker on port ${response.port}`
             )
-          } else {
-            console.error('Fastify failed to start on worker:', response.error)
           }
           return null
         })
         .catch(error => {
-          console.error(error)
+          console.error('Fastify failed to start on worker:', error)
         })
     },
     errorHandler: (e: Error) => {
index 51dec1a065520a09fdf83ee84d27ab18572a20f5..7d6c174e18b145414eb947132e511e92d18ff7ba 100644 (file)
@@ -5,5 +5,4 @@ export interface WorkerData {
 export interface WorkerResponse {
   status: boolean
   port?: number
-  error?: Error
 }
index 9595fb025273501ae5582fb01ccc5f7e82837fb9..28658797b00c40c2b62b51d853c23eb67de6fe4a 100644 (file)
@@ -28,18 +28,10 @@ const startFastify = async (
     return { number: factorial(number) }
   })
 
-  try {
-    await fastify.listen({ port: workerData?.port })
-    return {
-      status: true,
-      port: (fastify.server.address() as AddressInfo).port
-    }
-  } catch (err) {
-    fastify.log.error(err)
-    return {
-      status: false,
-      error: err as Error
-    }
+  await fastify.listen({ port: workerData?.port })
+  return {
+    status: true,
+    port: (fastify.server.address() as AddressInfo).port
   }
 }
 
index 8779c6dcf309ae49b4960abd4ac216af17582a25..d2ab87b1705d3898183454c9053c945800746d42 100644 (file)
@@ -21,16 +21,11 @@ const pool = new FixedClusterPool<WorkerData, WorkerResponse>(
               // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
               `WebSocket server is listening on worker on port ${response.port}`
             )
-          } else {
-            console.error(
-              'WebSocket server failed to start on worker:',
-              response.error
-            )
           }
           return null
         })
         .catch(error => {
-          console.error(error)
+          console.error('WebSocket server failed to start on worker:', error)
         })
     },
     errorHandler: (e: Error) => {
index 5b3c89a6539ccb84d4950927e55ad62d19d0b038..922914a1d8f7a04ce27052722cb72582ba323037 100644 (file)
@@ -19,5 +19,4 @@ export interface WorkerData {
 export interface WorkerResponse {
   status: boolean
   port?: number
-  error?: Error
 }
index 56060b2d28b043d40eb3dad1cf4f7ed52d33db8b..e2751f727090ce8a3a53b8cfecde4a8477f9a3c3 100644 (file)
@@ -16,51 +16,44 @@ const factorial: (n: number) => number = n => {
 }
 
 const startWebSocketServer = (workerData?: WorkerData): WorkerResponse => {
-  try {
-    const wss = new WebSocketServer({ port: workerData?.port }, () => {
-      console.info(
-        `⚡️[ws server]: WebSocket server is started on worker at ws://localhost:${
-          workerData?.port as number
-        }/`
-      )
-    })
+  const wss = new WebSocketServer({ port: workerData?.port }, () => {
+    console.info(
+      `⚡️[ws server]: WebSocket server is started on worker at ws://localhost:${
+        workerData?.port as number
+      }/`
+    )
+  })
 
-    wss.on('connection', ws => {
-      ws.on('error', console.error)
-      ws.on('message', (message: RawData) => {
-        const { type, data } = JSON.parse(
-          // eslint-disable-next-line @typescript-eslint/no-base-to-string
-          message.toString()
-        ) as MessagePayload<DataPayload>
-        switch (type) {
-          case MessageType.echo:
-            ws.send(
-              JSON.stringify({
-                type: MessageType.echo,
-                data
-              })
-            )
-            break
-          case MessageType.factorial:
-            ws.send(
-              JSON.stringify({
-                type: MessageType.factorial,
-                data: { number: factorial(data.number as number) }
-              })
-            )
-            break
-        }
-      })
+  wss.on('connection', ws => {
+    ws.on('error', console.error)
+    ws.on('message', (message: RawData) => {
+      const { type, data } = JSON.parse(
+        // eslint-disable-next-line @typescript-eslint/no-base-to-string
+        message.toString()
+      ) as MessagePayload<DataPayload>
+      switch (type) {
+        case MessageType.echo:
+          ws.send(
+            JSON.stringify({
+              type: MessageType.echo,
+              data
+            })
+          )
+          break
+        case MessageType.factorial:
+          ws.send(
+            JSON.stringify({
+              type: MessageType.factorial,
+              data: { number: factorial(data.number as number) }
+            })
+          )
+          break
+      }
     })
-    return {
-      status: true,
-      port: wss.options.port
-    }
-  } catch (err) {
-    return {
-      status: false,
-      error: err as Error
-    }
+  })
+  return {
+    status: true,
+    port: wss.options.port
   }
 }