Позвольте мне представить некоторые сведения о проблеме, с которой я сейчас сталкиваюсь, и о решении, которое мы также пытаемся реализовать:
В настоящее время мы внедрили REST-клиент, используя org.apache.cxf.jaxrs.client.WebClient
, и с этой реализациеймы хотим установить тайм-аут так, чтобы операции, которые честно занимают время, были корректно отключены.
Здесь, в этом контексте, мы должны потратить много времени на изучение того, какие опции тайм-аута предоставляются.чтобы время выполнения операции было изящно истекло, вместо того, чтобы позволить операции занять годы!
Мы попытались следовать многим из подходов, предложенных здесь в StackOverflow, чтобы установить время ожидания, как показано ниже, которые неслужить цели (после этого вопроса, попробовал этот подход):
HTTPConduit conduit = WebClient.getConfig(webClient).getHttpConduit();
conduit.getClient().setConnectionTimeout(1000 * 3);
conduit.getClient().setReceiveTimeout(1000 * 3);
Очевидно, что это не сработало.И при дальнейшем изучении кода WebClient
& ClientConfiguration
заметил, что есть еще один вариант попробовать (даже это не сработало).Вот реализация, которую я попробовал.
ClientConfiguration clientConfiguration = WebClient.getConfig(webClient);
clientConfiguration.setSynchronousTimeout(90000); //default value here being 60000, on increasing this - it doesn't take effect
Просто хотел понять, когда и где эти таймауты вступают в силу, когда мы пытаемся вызвать соответствующие действия HTTP GET, POST или PUT.Я очень запутался, когда эти тайм-ауты повлияют на то, какие операции сейчас выполняются!
Я знаю, что не могу предоставить минимальный отлаживаемый код, который можно исследовать, но это должно быть что-то очень базовое для любых реализаций REST (я думаю,).
Любые указатели на это очень ценятся.