Как обрабатывать запросы сервлета при длительном отключении
Нам необходимо внедрить механизм постепенного отключения в наше приложение Servlet.
РЕДАКТИРОВАТЬ: Мы хотим сделать его максимально простым, который будет обрабатывать сигнал уничтожения, отправленный через операционную систему »с функцией. Это позволит системным администраторам использовать встроенные утилиты оболочки (kill или taskkill в Windows), в противном случае им придется установить другую утилиту просто для "говорить" с сервером.
Этот механизм работает в два этапа:
при запросе на отключение отрицать определенные критические действияблокировать до завершения ранее инициированных критических действий; это может занять несколько часовЭтап № 1 реализован на нашем уровне DAO. Этап № 2 реализован в нашем методе ServletContextListener # contextDestroyed
Наша проблема в том, что после вызова contextDestroyed контейнер сервлетов перестает обслуживать дальнейшие HTTP-запросы.
РЕДАКТИРОВАТЬ: contextDestroyed вызывается, когда кто-то вызывает операционную системуубить функцию на серверепроцесс.
Мы хотели бы, чтобы приложение работало во время фазы # 2, уведомляя пользователей о том, что некоторые действия недоступны.