diff --git a/tools/intellij.tools.ide.metrics.collector/src/com/intellij/tools/ide/metrics/collector/telemetry/OpentelemetrySpanJsonParser.kt b/tools/intellij.tools.ide.metrics.collector/src/com/intellij/tools/ide/metrics/collector/telemetry/OpentelemetrySpanJsonParser.kt index f47d88f9d40f..0f0ae3e7c7ff 100644 --- a/tools/intellij.tools.ide.metrics.collector/src/com/intellij/tools/ide/metrics/collector/telemetry/OpentelemetrySpanJsonParser.kt +++ b/tools/intellij.tools.ide.metrics.collector/src/com/intellij/tools/ide/metrics/collector/telemetry/OpentelemetrySpanJsonParser.kt @@ -3,7 +3,7 @@ package com.intellij.tools.ide.metrics.collector.telemetry import com.intellij.tools.ide.util.common.PrintFailuresMode -import com.intellij.tools.ide.util.common.withRetry +import com.intellij.tools.ide.util.common.withRetryBlocking import it.unimi.dsi.fastutil.objects.Object2ObjectFunction import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet @@ -33,7 +33,7 @@ private data class OpentelemetryJsonData( ) private fun getSpans(file: Path): List { - val spanData = withRetry( + val spanData = withRetryBlocking( messageOnFailure = "Failure during spans extraction from OpenTelemetry json file", retries = 5, printFailuresMode = PrintFailuresMode.ONLY_LAST_FAILURE, diff --git a/tools/intellij.tools.ide.util.common/src/com/intellij/tools/ide/util/common/retry.kt b/tools/intellij.tools.ide.util.common/src/com/intellij/tools/ide/util/common/retry.kt index 360680c3619c..1b959a57ce88 100644 --- a/tools/intellij.tools.ide.util.common/src/com/intellij/tools/ide/util/common/retry.kt +++ b/tools/intellij.tools.ide.util.common/src/com/intellij/tools/ide/util/common/retry.kt @@ -16,11 +16,11 @@ enum class PrintFailuresMode { /** @return T - if successful; null - otherwise */ -suspend fun withRetryAsync(messageOnFailure: String, - retries: Long = 3, - printFailuresMode: PrintFailuresMode = PrintFailuresMode.ALL_FAILURES, - delay: Duration = 10.seconds, - retryAction: suspend () -> T): T? { +suspend fun withRetry(messageOnFailure: String, + retries: Long = 3, + printFailuresMode: PrintFailuresMode = PrintFailuresMode.ALL_FAILURES, + delay: Duration = 10.seconds, + retryAction: suspend () -> T): T? { (1..retries).forEach { failureCount -> try { @@ -57,14 +57,14 @@ open class NoRetryException(message: String, cause: Throwable?) : IllegalStateEx /** @return T - if successful; null - otherwise */ @Suppress("RAW_RUN_BLOCKING") -fun withRetry( +fun withRetryBlocking( messageOnFailure: String, retries: Long = 3, printFailuresMode: PrintFailuresMode = PrintFailuresMode.ALL_FAILURES, delay: Duration = 10.seconds, retryAction: () -> T ): T? = runBlocking(Dispatchers.IO) { - withRetryAsync( + withRetry( messageOnFailure = messageOnFailure, retries = retries, printFailuresMode = printFailuresMode,