feat: add worker info to worker nodes
[poolifier.git] / src / worker / cluster-worker.ts
index 2a3961b37f02836d52c7972f98ee150c02904281..16dddd2969bd50193c4fb43e762d607f08f4ca08 100644 (file)
@@ -13,8 +13,8 @@ import type { TaskFunctions, WorkerFunction } from './worker-functions'
  * If you use a `DynamicClusterPool` the extra workers that were created will be terminated,
  * but the minimum number of workers will be guaranteed.
  *
- * @typeParam Data - Type of data this worker receives from pool's execution. This can only be serializable data.
- * @typeParam Response - Type of response the worker sends back to the main worker. This can only be serializable data.
+ * @typeParam Data - Type of data this worker receives from pool's execution. This can only be structured-cloneable data.
+ * @typeParam Response - Type of response the worker sends back to the main worker. This can only be structured-cloneable data.
  * @author [Christopher Quadflieg](https://github.com/Shinigami92)
  * @since 2.0.0
  */
@@ -38,13 +38,22 @@ export class ClusterWorker<
       'worker-cluster-pool:poolifier',
       cluster.isPrimary,
       taskFunctions,
-      cluster.worker,
+      cluster.worker as Worker,
       opts
     )
+    if (!this.isMain) {
+      this.sendToMainWorker({ workerId: this.id, started: true })
+    }
+  }
+
+  /** @inheritDoc */
+  protected get id (): number {
+    return this.getMainWorker().id
   }
 
   /** @inheritDoc */
   protected sendToMainWorker (message: MessageValue<Response>): void {
+    console.log('sending message to main worker(cluster)', message)
     this.getMainWorker().send(message)
   }