Commit | Line | Data |
---|---|---|
4c35177b | 1 | /** |
1a81f8af | 2 | * Enumeration of kill behaviors. |
4c35177b | 3 | */ |
1a81f8af S |
4 | export const KillBehaviors = Object.freeze({ |
5 | /** | |
a6a2dc4c | 6 | * If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **wont** be deleted. |
1a81f8af | 7 | */ |
4c35177b | 8 | SOFT: 'SOFT', |
1a81f8af | 9 | /** |
a6a2dc4c | 10 | * If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted. |
1a81f8af | 11 | */ |
4c35177b | 12 | HARD: 'HARD' |
1a81f8af S |
13 | } as const) |
14 | ||
15 | /** | |
16 | * Kill behavior. | |
17 | */ | |
18 | export type KillBehavior = keyof typeof KillBehaviors | |
19 | ||
729c563d S |
20 | /** |
21 | * Options for workers. | |
22 | */ | |
325f50bc S |
23 | export interface WorkerOptions { |
24 | /** | |
b0a4db63 | 25 | * Maximum waiting time in milliseconds for tasks on newly created workers. |
1a81f8af | 26 | * |
729c563d | 27 | * After this time, newly created workers will be terminated. |
b0a4db63 | 28 | * The last active time of your worker will be updated when it terminates a task. |
1a81f8af S |
29 | * |
30 | * - If `killBehavior` is set to `KillBehaviors.HARD` this value represents also the timeout for the tasks that you submit to the pool, | |
b0a4db63 | 31 | * when this timeout expires your tasks is interrupted before completion and removed. The worker is killed if is not part of the minimum size of the pool. |
15eacd5d | 32 | * - If `killBehavior` is set to `KillBehaviors.SOFT` your tasks have no timeout and your workers will not be terminated until your task is completed. |
325f50bc | 33 | * |
1ff6b9de | 34 | * @defaultValue 60000 |
325f50bc S |
35 | */ |
36 | maxInactiveTime?: number | |
37 | /** | |
729c563d | 38 | * Whether your worker will perform asynchronous or not. |
325f50bc | 39 | * |
38e795c1 | 40 | * @defaultValue false |
a86b6df1 | 41 | * @deprecated This option will be removed in the next major version. |
325f50bc S |
42 | */ |
43 | async?: boolean | |
4c35177b | 44 | /** |
b0a4db63 | 45 | * `killBehavior` dictates if your worker will be deleted in case a task is active on it. |
1a81f8af | 46 | * |
a6a2dc4c JB |
47 | * - SOFT: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker **won't** be deleted. |
48 | * - HARD: If `currentTime - lastActiveTime` is greater than `maxInactiveTime` but a task is still executing or queued, then the worker will be deleted. | |
1a81f8af | 49 | * |
4c35177b | 50 | * This option only apply to the newly created workers. |
51 | * | |
38e795c1 | 52 | * @defaultValue KillBehaviors.SOFT |
4c35177b | 53 | */ |
fb41d7f7 | 54 | killBehavior?: KillBehavior |
325f50bc | 55 | } |