Может кто-нибудь объяснить, есть ли смысл в применении сопрограмм к http-клиентам, таким как Feign, если он использует синхронные http-вызовы?Поскольку он блокируется до получения ответа, мы не получаем никакой прибыли (с точки зрения минимизации времени простоя потоков) от написания такого кода:
async {feignApi.getSomeMeaningfulData1()}
async {feignApi.getSomeMeaningfulData2()}
//And waiting for the result to combine.
не так ли?Как я понял, это может быть полезно, если:
1) http-клиент использовал некоторую функцию приостановки внутри при чтении данных по сети, например suspended fun readChunkOfData()
в некотором цикле, и тогда рабочий поток не будет ждатьВ ожидании поступления нового фрагмента данных (он может работать со вторым запросом, а затем переключаться назад и вперед до тех пор, пока запросы не будут выполнены).Я не знаю много о том, как обычные http клиенты работают внутри, поэтому мне нужно кое-что прояснить
2) по крайней мере он не дождался обработки запроса на другом сервере.
Возможно ли это вообще?
Должен ли я использовать некоторую часть платформы Ktor в качестве httpClient в Feign для решения этой проблемы?