Updated on 2026-08-14
This commit is contained in:
parent
337b9908c4
commit
292d895c4a
3 changed files with 15 additions and 7 deletions
|
|
@ -1,4 +1,4 @@
|
|||
package com.tangem.data.markets.utils
|
||||
package com.tangem.data.common.utils
|
||||
|
||||
import kotlinx.coroutines.currentCoroutineContext
|
||||
import kotlinx.coroutines.delay
|
||||
|
|
@ -8,7 +8,7 @@ import timber.log.Timber
|
|||
import kotlin.coroutines.cancellation.CancellationException
|
||||
|
||||
@Suppress("UnconditionalJumpStatementInLoop")
|
||||
internal suspend fun <T> retryOnError(priority: Boolean = false, call: suspend () -> T): T {
|
||||
suspend fun <T> retryOnError(priority: Boolean = false, call: suspend () -> T): T {
|
||||
while (true) {
|
||||
return try {
|
||||
call()
|
||||
|
|
@ -16,11 +16,14 @@ internal suspend fun <T> retryOnError(priority: Boolean = false, call: suspend (
|
|||
if (e is CancellationException) {
|
||||
currentCoroutineContext().ensureActive()
|
||||
}
|
||||
Timber.e(e)
|
||||
|
||||
Timber.e(e, "Error occurred during retryOnError block")
|
||||
|
||||
if (priority.not()) {
|
||||
yield()
|
||||
delay(timeMillis = 500)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
package com.tangem.data.markets
|
||||
|
||||
import com.tangem.data.markets.converters.*
|
||||
import com.tangem.data.markets.utils.retryOnError
|
||||
import com.tangem.data.common.utils.retryOnError
|
||||
import com.tangem.data.markets.converters.TokenChartConverter
|
||||
import com.tangem.data.markets.converters.TokenMarketInfoConverter
|
||||
import com.tangem.data.markets.converters.TokenMarketListConverter
|
||||
import com.tangem.data.markets.converters.toRequestParam
|
||||
import com.tangem.datasource.api.common.response.getOrThrow
|
||||
import com.tangem.datasource.api.markets.TangemTechMarketsApi
|
||||
import com.tangem.datasource.api.tangemTech.TangemTechApi
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
package com.tangem.data.markets
|
||||
|
||||
import com.tangem.data.common.utils.retryOnError
|
||||
import com.tangem.data.markets.converters.TokenMarketChartsConverter
|
||||
import com.tangem.data.markets.converters.TokenQuotesShortConverter
|
||||
import com.tangem.data.markets.converters.toRequestParam
|
||||
import com.tangem.data.markets.utils.retryOnError
|
||||
import com.tangem.datasource.api.common.response.getOrThrow
|
||||
import com.tangem.datasource.api.markets.TangemTechMarketsApi
|
||||
import com.tangem.datasource.api.markets.models.response.TokenMarketChartListResponse
|
||||
|
|
@ -13,7 +13,9 @@ import com.tangem.domain.markets.TokenMarketUpdateRequest
|
|||
import com.tangem.pagination.Batch
|
||||
import com.tangem.pagination.BatchUpdateFetcher
|
||||
import com.tangem.pagination.BatchUpdateResult
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
internal class MarketsBatchUpdateFetcher(
|
||||
private val marketsApi: TangemTechMarketsApi,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue