refactor: cleanup reservation code helpers
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerConstants.ts
CommitLineData
769d3b10 1import { type ThreadPoolOptions, availableParallelism } from 'poolifier';
60d1f5b0 2
769d3b10 3import type { WorkerOptions } from './WorkerTypes';
59b6ed8d 4
769d3b10
JB
5export const EMPTY_FUNCTION = Object.freeze(() => {
6 /* This is intentional */
7});
4db8406c 8
769d3b10 9export const workerSetVersion = '1.0.1';
628c30e5 10
769d3b10
JB
11export const DEFAULT_ELEMENT_START_DELAY = 0;
12export const DEFAULT_WORKER_START_DELAY = 500;
13export const POOL_MAX_INACTIVE_TIME = 60000;
14export const DEFAULT_POOL_MIN_SIZE = Math.floor(availableParallelism() / 2);
15export const DEFAULT_POOL_MAX_SIZE = Math.round(availableParallelism() * 1.5);
16export const DEFAULT_ELEMENTS_PER_WORKER = 1;
17
18export const DEFAULT_WORKER_OPTIONS: WorkerOptions = Object.freeze({
19 workerStartDelay: DEFAULT_WORKER_START_DELAY,
20 elementStartDelay: DEFAULT_ELEMENT_START_DELAY,
21 poolMinSize: DEFAULT_POOL_MIN_SIZE,
22 poolMaxSize: DEFAULT_POOL_MAX_SIZE,
23 elementsPerWorker: DEFAULT_ELEMENTS_PER_WORKER,
24 poolOptions: {},
25});
26
27export const DEFAULT_POOL_OPTIONS: ThreadPoolOptions = {
28 enableEvents: true,
29 restartWorkerOnError: true,
30};