refactor: cleanup handlers
authorJérôme Benoit <jerome.benoit@sap.com>
Tue, 15 Aug 2023 19:30:46 +0000 (21:30 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Tue, 15 Aug 2023 19:30:46 +0000 (21:30 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/pools/abstract-pool.ts
src/pools/pool.ts
src/pools/worker.ts

index 8fb25b645fb55f2e0f2e48192aae20a1ec5363c4..06e69a6e3140da3092e75a6ff7040e201c70255c 100644 (file)
@@ -933,6 +933,7 @@ export abstract class AbstractPool<
   protected createAndSetupWorkerNode (): number {
     const worker = this.createWorker()
 
+    worker.on('online', this.opts.onlineHandler ?? EMPTY_FUNCTION)
     worker.on('message', this.opts.messageHandler ?? EMPTY_FUNCTION)
     worker.on('error', this.opts.errorHandler ?? EMPTY_FUNCTION)
     worker.on('error', (error) => {
@@ -952,7 +953,6 @@ export abstract class AbstractPool<
         this.redistributeQueuedTasks(workerNodeKey)
       }
     })
-    worker.on('online', this.opts.onlineHandler ?? EMPTY_FUNCTION)
     worker.on('exit', this.opts.exitHandler ?? EMPTY_FUNCTION)
     worker.once('exit', () => {
       this.removeWorkerNode(worker)
index 24b506ca8f3f1f5a7fef66aeb0440af624cc64dd..f4d9c7bba67d18d3c48a212159bf606fe409cfcf 100644 (file)
@@ -111,6 +111,10 @@ export interface TasksQueueOptions {
  * @typeParam Worker - Type of worker.
  */
 export interface PoolOptions<Worker extends IWorker> {
+  /**
+   * A function that will listen for online event on each worker.
+   */
+  onlineHandler?: OnlineHandler<Worker>
   /**
    * A function that will listen for message event on each worker.
    */
@@ -119,10 +123,6 @@ export interface PoolOptions<Worker extends IWorker> {
    * A function that will listen for error event on each worker.
    */
   errorHandler?: ErrorHandler<Worker>
-  /**
-   * A function that will listen for online event on each worker.
-   */
-  onlineHandler?: OnlineHandler<Worker>
   /**
    * A function that will listen for exit event on each worker.
    */
index 2da91457aed58994f01714a162adffba69ab61fe..5dbb6ac5fc16cdb2afd48f968513b1292c257f66 100644 (file)
@@ -182,9 +182,9 @@ export interface IWorker {
    * @param event - The event.
    * @param handler - The event handler.
    */
-  readonly on: ((event: 'message', handler: MessageHandler<this>) => void) &
+  readonly on: ((event: 'online', handler: OnlineHandler<this>) => void) &
+  ((event: 'message', handler: MessageHandler<this>) => void) &
   ((event: 'error', handler: ErrorHandler<this>) => void) &
-  ((event: 'online', handler: OnlineHandler<this>) => void) &
   ((event: 'exit', handler: ExitHandler<this>) => void)
   /**
    * Registers a listener to the exit event that will only be performed once.