07c55757a0c844f808562b890ccd4b6d10d8ca97
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerConstants.ts
1 import { availableParallelism } from 'poolifier'
2
3 import type { WorkerOptions } from './WorkerTypes.js'
4
5 import { defaultErrorHandler, defaultExitHandler } from './WorkerUtils.js'
6
7 export const EMPTY_FUNCTION = Object.freeze(() => {
8 /* This is intentional */
9 })
10
11 export const workerSetVersion = '1.0.1'
12
13 export const DEFAULT_ELEMENT_ADD_DELAY = 0
14 export const DEFAULT_WORKER_START_DELAY = 500
15 export const DEFAULT_POOL_MIN_SIZE = Math.floor(availableParallelism() / 2)
16 export const DEFAULT_POOL_MAX_SIZE = Math.round(availableParallelism() * 1.5)
17 export const DEFAULT_ELEMENTS_PER_WORKER = 1
18
19 export const DEFAULT_WORKER_OPTIONS: WorkerOptions = Object.freeze({
20 elementAddDelay: DEFAULT_ELEMENT_ADD_DELAY,
21 elementsPerWorker: DEFAULT_ELEMENTS_PER_WORKER,
22 poolMaxSize: DEFAULT_POOL_MAX_SIZE,
23 poolMinSize: DEFAULT_POOL_MIN_SIZE,
24 poolOptions: {
25 enableEvents: true,
26 errorHandler: defaultErrorHandler,
27 exitHandler: defaultExitHandler,
28 restartWorkerOnError: true,
29 startWorkers: false,
30 },
31 workerStartDelay: DEFAULT_WORKER_START_DELAY,
32 })