Как получить тайм-аут по умолчанию в клиенте Джерси - PullRequest
0 голосов
/ 04 июля 2018

Я использую основной клиент Jersey для подключения к внешним сервисам. Я хочу знать настройку тайм-аута по умолчанию в Джерси. Любая идея? Я использую Джерси 2.26.

Спасибо и всего наилучшего.

Обратите внимание, что я не спрашиваю, как установить тайм-аут для клиента Джерси, который уже получил здесь хорошие ответы: Как установить соединение и прочитать тайм-аут с помощью Джерси 2.x?

Я беспокоюсь только о том, чтобы знать значение тайм-аута по умолчанию. Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Согласно документу в api docs , по умолчанию значения READ_TIMEOUT и CONNECT_TIMEOUT в клиенте равны 0 (бесконечность).

0 голосов
/ 04 июля 2018

По документам Джерси

По умолчанию тайм-аут не определен, т. Е. У клиента есть тайм-аут чтения и соединения бесконечности.

см. https://jersey.github.io/documentation/latest/async.html#d0e9989

Если вы хотите установить тайм-аут, вы можете обратиться к приведенному ниже фрагменту из документации Джерси

@GET
public void asyncGetWithTimeout(@Suspended final AsyncResponse asyncResponse) {
    asyncResponse.setTimeoutHandler(new TimeoutHandler() {

        @Override
        public void handleTimeout(AsyncResponse asyncResponse) {
            asyncResponse.resume(Response.status(Response.Status.SERVICE_UNAVAILABLE)
                    .entity("Operation time out.").build());
        }
    });
    asyncResponse.setTimeout(20, TimeUnit.SECONDS);

    new Thread(new Runnable() {

        @Override
        public void run() {
            String result = veryExpensiveOperation();
            asyncResponse.resume(result);
        }

        private String veryExpensiveOperation() {
            // ... very expensive operation that typically finishes within 20 seconds
        }
    }).start();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...