X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils.ts;h=efd1f124084776667bd60495f202cec32c7e04a9;hb=c62d6d8877008cce9408998b824794b86bfe0a2d;hp=cc71491a2fbe9396a9f0411ad32a9438cf6f7d35;hpb=e4f20deb9ad8a6e0113306f0ec19ba6d4676d24a;p=poolifier.git diff --git a/src/utils.ts b/src/utils.ts index cc71491a..efd1f124 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -23,6 +23,7 @@ export const EMPTY_FUNCTION: () => void = Object.freeze(() => { */ export const DEFAULT_WORKER_CHOICE_STRATEGY_OPTIONS: WorkerChoiceStrategyOptions = { + choiceRetries: 6, runTime: { median: false }, waitTime: { median: false }, elu: { median: false } @@ -57,6 +58,22 @@ export const availableParallelism = (): number => { return availableParallelism } +// /** +// * Computes the retry delay in milliseconds using an exponential back off algorithm. +// * +// * @param retryNumber - The number of retries that have already been attempted +// * @param maxDelayRatio - The maximum ratio of the delay that can be randomized +// * @returns Delay in milliseconds +// */ +// export const exponentialDelay = ( +// retryNumber = 0, +// maxDelayRatio = 0.2 +// ): number => { +// const delay = Math.pow(2, retryNumber) * 100 +// const randomSum = delay * maxDelayRatio * Math.random() // 0-(maxDelayRatio*100)% of the delay +// return delay + randomSum +// } + /** * Computes the median of the given data set. * @@ -136,13 +153,13 @@ export const isAsyncFunction = ( * @param measurementStatistics - The measurement statistics to update. * @param measurementRequirements - The measurement statistics requirements. * @param measurementValue - The measurement value. - * @param tasksExecuted - The number of tasks executed. + * @param numberOfMeasurements - The number of measurements. */ export const updateMeasurementStatistics = ( measurementStatistics: MeasurementStatistics, measurementRequirements: MeasurementStatisticsRequirements, measurementValue: number, - tasksExecuted: number + numberOfMeasurements: number ): void => { if (measurementRequirements.aggregate) { measurementStatistics.aggregate = @@ -155,9 +172,9 @@ export const updateMeasurementStatistics = ( measurementValue, measurementStatistics.maximum ?? -Infinity ) - if (measurementRequirements.average && tasksExecuted !== 0) { + if (measurementRequirements.average && numberOfMeasurements !== 0) { measurementStatistics.average = - measurementStatistics.aggregate / tasksExecuted + measurementStatistics.aggregate / numberOfMeasurements } if (measurementRequirements.median && measurementValue != null) { measurementStatistics.history.push(measurementValue)