X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2FWorkerConstants.ts;h=c7f8065ae1dc603842e78e6eae6a8c0fe7133e17;hb=d181b12b516b58fc80cbd5300570612e6b025024;hp=1e2e8cdcb2227a2117695d5261928f8dceedab8f;hpb=4db8406cd780b8912b2cf3bd882a21228aba47a7;p=e-mobility-charging-stations-simulator.git diff --git a/src/worker/WorkerConstants.ts b/src/worker/WorkerConstants.ts index 1e2e8cdc..c7f8065a 100644 --- a/src/worker/WorkerConstants.ts +++ b/src/worker/WorkerConstants.ts @@ -1,12 +1,27 @@ -export default class WorkerConstants { - static readonly DEFAULT_ELEMENT_START_DELAY = 0; - static readonly DEFAULT_WORKER_START_DELAY = 500; - static readonly POOL_MAX_INACTIVE_TIME = 60000; - static readonly DEFAULT_POOL_MIN_SIZE = 4; - static readonly DEFAULT_POOL_MAX_SIZE = 16; - static readonly DEFAULT_ELEMENTS_PER_WORKER = 1; - - private constructor() { - // This is intentional - } -} +import { availableParallelism } from 'poolifier'; + +import type { WorkerOptions } from './WorkerTypes'; + +export const EMPTY_FUNCTION = Object.freeze(() => { + /* This is intentional */ +}); + +export const workerSetVersion = '1.0.1'; + +export const DEFAULT_ELEMENT_START_DELAY = 0; +export const DEFAULT_WORKER_START_DELAY = 500; +export const DEFAULT_POOL_MIN_SIZE = Math.floor(availableParallelism() / 2); +export const DEFAULT_POOL_MAX_SIZE = Math.round(availableParallelism() * 1.5); +export const DEFAULT_ELEMENTS_PER_WORKER = 1; + +export const DEFAULT_WORKER_OPTIONS: WorkerOptions = Object.freeze({ + workerStartDelay: DEFAULT_WORKER_START_DELAY, + elementStartDelay: DEFAULT_ELEMENT_START_DELAY, + poolMinSize: DEFAULT_POOL_MIN_SIZE, + poolMaxSize: DEFAULT_POOL_MAX_SIZE, + elementsPerWorker: DEFAULT_ELEMENTS_PER_WORKER, + poolOptions: { + enableEvents: true, + restartWorkerOnError: true, + }, +});