Как изменить параметры с помощью retry()
в kotlin
и webflux
?
Существует функция productInfo, параметр функции представляет собой набор идентификаторов продуктов.
Когда я ввожу неправильный идентификатор в идентификаторы коллекции списков, вышестоящий интерфейс будет возвращать только неправильный идентификатор. И получить сбой.
Чего я хочу добиться, так это когда вышестоящий интерфейс возвращает неверный идентификатор. Информация о продукте может удалить неправильный идентификатор и повторить попытку с правильными идентификаторами.
Я пытался использовать retry () , но я не знаю, как изменить параметры ввторая попытка.
fun productInfo(ids: List<Pair<String, String>>): Flux<ProductItem> {
return productWebClient
.get()
.uri("product/items/${ids.joinToString(";") { "${it.second},${it.first}" }}")
.retrieve()
.bodyToFlux(ProductItem::class.java)
.onErrorResume {
logger.error("Fetch products failed." + it.message)
Mono.empty()
}
}