У меня есть EJB A
, который вызывает EJB B
. Пользовательский интерфейс не должен ждать ответа более 30 секунд. Если некоторые данные отсутствуют, он должен вернуть частичный ответ.Сделать вызов EJB с таймаутом
Как определить тайм-аут (ограничение по времени 30 секунд) на EJB B
?
я могу определить EJB B
, как Asynchronous
, который возвращает Future
, а затем сделать Future.get(30, TimeUnit.SECONDS)
. Но это лучшее решение?
спасибо
P.S. Я использую стеклянную рыбу 3.1
Я не хочу прерывать EJB. Идея состояла в том, чтобы вернуть ответ (или «ошибку тайм-аута») в пользовательский интерфейс через 30 секунд. – lili
Конечно, но тайм-аут переднего конца без тайм-аута на заднем плане кажется неразумным. В конце концов ваши потоки будут потребляться, и ваши интерфейсные потоки должны будут ждать в любом случае. Учитывая то, что вы сказали, использование '@ Asynchronous', вероятно, лучше всего. –