Merge pull request #878 from poolifier/dependabot/npm_and_yarn/examples/typescript...
[poolifier.git] / src / utils.ts
index cc71491a2fbe9396a9f0411ad32a9438cf6f7d35..efd1f124084776667bd60495f202cec32c7e04a9 100644 (file)
@@ -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)