0
在我的Web應用程序中,用戶可以調用長時間運行的後端服務(同步請求)。執行時間爲這個服務應該不計數的websession超時所以在我的代碼我想:「臨時」爲方法設置會話超時 - setMaxInactiveInterval
handleUserRequest() {
HttpSession session = ...getSession(false);
int oldMaxInactiveInterval = session.getMaxInactiveInterval();
session.setMaxInactiveInterval(BIG_VALUE);
<LONG RUNNING TASK>
session.setMaxInactiveInterval(oldMaxInactiveInterval);
}
預期這是行不通的。此「方法調用」無法識別臨時會話超時。用戶會話根據oldMaxInactiveInterval值超時。
是否可以做,我想做什麼? ;-)
是的,我知道。這不是問題。 ;-) – Ginkgochris
我認爲新會話超時適用於所有*後續*請求,但不適用於設置新會話超時的請求。 :( – Ginkgochris
@Ginkgochris我不知道你的確切場景是什麼,但是你應該知道這個3或更多秒,如果你有很長的進程,那麼你必須爲它進行異步處理,或者使用EJBTimer調度器,Quartz,Servlet 3.0支持異步通知用戶。 –