TODO for shinigami
authoraardizio <alessandroardizio94@gmail.com>
Tue, 16 Feb 2021 11:17:25 +0000 (12:17 +0100)
committeraardizio <alessandroardizio94@gmail.com>
Tue, 16 Feb 2021 11:17:25 +0000 (12:17 +0100)
src/utility-types.ts
src/worker/abstract-worker.ts
src/worker/worker-options.ts

index 8fb8130a6bd2f268a8d41e51d7f9ce54c7d8fc1c..82dbb4233dab878049059a6334bb1bbcceab2c94 100644 (file)
@@ -1,6 +1,7 @@
 import type { Worker } from 'cluster'
 import type { MessagePort } from 'worker_threads'
 
+export type KillBehavior = 'HARD' | 'SOFT'
 /**
  * Make all properties in T non-readonly
  */
@@ -42,7 +43,7 @@ export interface MessageValue<
   /**
    * Kill code.
    */
-  readonly kill?: 'HARD' | 'SOFT' | number
+  readonly kill?: KillBehavior | number
   /**
    * Error.
    */
@@ -54,3 +55,4 @@ export interface MessageValue<
    */
   readonly parent?: MainWorker
 }
+
index d57eacd70557a92befd1c132df8a199cab9aa68d..bbf8f7065cf32656e2afd5c67b9b840fc0ff8c7b 100644 (file)
@@ -1,12 +1,13 @@
 import { AsyncResource } from 'async_hooks'
 import type { Worker } from 'cluster'
 import type { MessagePort } from 'worker_threads'
-import type { MessageValue } from '../utility-types'
+import type { MessageValue, KillBehavior } from '../utility-types'
 import type { WorkerOptions } from './worker-options'
 import { killBehaviorEnumeration } from './worker-options'
 
 const defaultMaxInactiveTime = 1000 * 60
-const defaultKillBehavior = killBehaviorEnumeration.SOFT
+// TODO Shinigami92 to fix this and avoid that SOFT/HARD words are replicated so much times into the project
+const defaultKillBehavior: KillBehavior = 'SOFT'
 
 /**
  * Base class containing some shared logic for all poolifier workers.
@@ -27,7 +28,7 @@ export abstract class AbstractWorker<
   /**
    * The kill behavior set as option on the Worker constructor or a default value.
    */
-  protected readonly killBehavior: 'HARD' | 'SOFT'
+  protected readonly killBehavior: KillBehavior
   /**
    * Whether the worker is working asynchronously or not.
    */
index 3f1946d256a2732e3b9e36ce00d8c7acd5ee394d..b1d13d0cd37fd4471a3d882ed98e191a9e626a76 100644 (file)
@@ -1,3 +1,5 @@
+import type { KillBehavior } from '../utility-types'
+
 /**
  * Kill behavior enumeration
  */
@@ -14,9 +16,9 @@ export interface WorkerOptions {
    * Maximum waiting time in milliseconds for tasks.
    * After this time, newly created workers will be terminated.
    * The last active time of your worker unit will be updated when a task is submitted to a worker or when a worker terminate a task.
-   * If `killBehavior` is set to `HARD` this value represents also the timeout for the tasks that you submit to the pool,
-   * when this timeout expires your tasks is interrupted and the worker is killed if it is not part of the minimum size of the pool.
-   * If `killBehavior` is set to `SOFT` your tasks have no timeout and your workers will not be terminated until your task is finished.
+   * If killBehavior is set to HARD this value represents also the timeout for the tasks that you submit to the pool,
+   * when this timeout expires your tasks is interrupted and the worker is killed if is not part of the minimum size of the pool.
+   * If killBehavior is set to SOFT your tasks have no timeout and your workers will not be terminated until your task is
    *
    * @default 60.000 ms
    */
@@ -28,12 +30,12 @@ export interface WorkerOptions {
    */
   async?: boolean
   /**
-   * `killBehavior` dictates if your async unit (worker/process) will be deleted in case that a task is active on it.
-   * SOFT: If current time - last active time is greater than `maxInactiveTime` option, but a task is still running then the worker will be not deleted.
-   * HARD: If last active time is greater than `maxInactiveTime` option, but a task is still running then the worker will be deleted.
+   * killBehavior dictates if your async unit ( worker/process ) will be deleted in case that a task is active on it.
+   * SOFT: If current time - last active time is greater than maxInactiveTime option, but a task is still running then the worker will be not deleted.
+   * HARD: If last active time is greater than maxInactiveTime option, but a task is still running then the worker will be deleted.
    * This option only apply to the newly created workers.
    *
-   * @default `'SOFT'`
+   * @default SOFT
    */
-  killBehavior?: 'HARD' | 'SOFT'
+  killBehavior?: KillBehavior
 }