По мере развертывания тестирования для пользователей я начинаю замечать, что некоторые контейнеры не закрываются, как я ожидал. Я связался с некоторыми из этих пользователей, чтобы узнать, какое у них поведение (т. Е. Оставляют ли они вкладки открытыми и т. Д.):
Тем временем мне было интересно, есть ли какие-либо настраиваемые функции тайм-аута, которые я, возможно, не видел в документации? Было бы здорово иметь максимальный возраст контейнера или что-то в этом роде. Мы могли бы написать свои собственные сценарии управления Docker, которые проверяют это, но было бы удобно, если бы в ShinyProxy было что-то, что позволяло бы это тоже.
+1
Привет @ jat255
ShinyProxy в настоящее время работает следующим образом:
proxy.heartbeat-rate
ShinyProxy отправляет клиенту биение. Если клиент отвечает, внутреннее состояние обновляется с учетом текущего времени. По умолчанию heartbeat-rate
составляет 10 секунд. Эти звуковые сигналы отправляются по каналу веб-сокета (если есть).proxy.heartbeat-timeout
назад, ShinyProxy завершает работу приложения. По умолчанию это 60 секунд.Пока пользователь держит свой браузер открытым и соединение с веб-сокетом открыто или отправляются HTTP-запросы, ShinyProxy предполагает, что приложение уже используется, и поэтому не убьет его.
Обратите внимание, что Spring также будет держать сеанс пользователя открытым, пока приложение отправляет HTTP-запросы.
Поэтому может случиться так, что приложения живут долго. Однако я вижу, что у вас есть приложение, которое открыто в течение 75 часов, что составляет около трех дней, это будет означать, что компьютер пользователя работает в течение трех дней (без приостановки). Может ли это быть так? Если нет, возможно, вы обнаружили ошибку, о которой мы не знаем.
Кстати, у нас есть планы на функцию max-lifetime
, которая убивает приложение через определенное время, независимо от того, используется ли оно. Это еще не реализовано и, вероятно, не войдет в следующий выпуск. Буду держать вас в курсе, если мы начнем над этим работать.
@LEDfan большое спасибо за разъяснения. Я не уверен, является ли длительный сеанс ошибкой или кто-то оставил вкладку на своем офисном компьютере (пытаясь получить дополнительную информацию от пользователя). Этот ограниченный срок действия сеанса является проблемой безопасности для нашей группы ИТ-безопасности (им не нравится видеть, как что-то входит в систему в течение длительного времени без того, чтобы там сидел пользователь). Что-то вроде max-lifetime
действительно было бы полезно. Я думаю, что тем временем мы собираемся запечь функцию тайм-аута, как эта идея , чтобы представить нашим пользователям предупреждение о том, что они собираются выйти из системы, а затем убить сервер Shiny, если нет ответа, что (как я понимаю) должен очистить контейнеры докеров. Я продолжу и закрою это, основываясь на пояснении выше. Спасибо!
Самый полезный комментарий
Кстати, у нас есть планы на функцию
max-lifetime
, которая убивает приложение через определенное время, независимо от того, используется ли оно. Это еще не реализовано и, вероятно, не войдет в следующий выпуск. Буду держать вас в курсе, если мы начнем над этим работать.