*/
export type KillBehavior = keyof typeof KillBehaviors
+/**
+ * Handler called when a worker is killed.
+ */
+export type KillHandler = () => void | Promise<void>
+
/**
* Options for workers.
*/
export interface WorkerOptions {
+ /**
+ * `killBehavior` dictates if your worker will be deleted in case a task is active on it.
+ *
+ * - SOFT: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted.
+ * - HARD: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted.
+ *
+ * This option only apply to the newly created workers.
+ *
+ * @defaultValue KillBehaviors.SOFT
+ */
+ killBehavior?: KillBehavior
/**
* Maximum waiting time in milliseconds for tasks on newly created workers.
*
* @defaultValue 60000
*/
maxInactiveTime?: number
+ /**
+ * The function to call when a worker is killed.
+ */
+ killHandler?: KillHandler
/**
* Whether your worker will perform asynchronous or not.
*
* @deprecated This option will be removed in the next major version.
*/
async?: boolean
- /**
- * `killBehavior` dictates if your worker will be deleted in case a task is active on it.
- *
- * - SOFT: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted.
- * - HARD: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted.
- *
- * This option only apply to the newly created workers.
- *
- * @defaultValue KillBehaviors.SOFT
- */
- killBehavior?: KillBehavior
}