Shinyproxy: Разъяснение относительно пульса для докер-контейнеров

Созданный на 25 февр. 2021  ·  4Комментарии  ·  Источник: openanalytics/shinyproxy

По мере развертывания тестирования для пользователей я начинаю замечать, что некоторые контейнеры не закрываются, как я ожидал. Я связался с некоторыми из этих пользователей, чтобы узнать, какое у них поведение (т. Е. Оставляют ли они вкладки открытыми и т. Д.):

image

Тем временем мне было интересно, есть ли какие-либо настраиваемые функции тайм-аута, которые я, возможно, не видел в документации? Было бы здорово иметь максимальный возраст контейнера или что-то в этом роде. Мы могли бы написать свои собственные сценарии управления Docker, которые проверяют это, но было бы удобно, если бы в ShinyProxy было что-то, что позволяло бы это тоже.

question

Самый полезный комментарий

Кстати, у нас есть планы на функцию max-lifetime , которая убивает приложение через определенное время, независимо от того, используется ли оно. Это еще не реализовано и, вероятно, не войдет в следующий выпуск. Буду держать вас в курсе, если мы начнем над этим работать.

Все 4 Комментарий

+1

Привет @ jat255

ShinyProxy в настоящее время работает следующим образом:

  • каждый proxy.heartbeat-rate ShinyProxy отправляет клиенту биение. Если клиент отвечает, внутреннее состояние обновляется с учетом текущего времени. По умолчанию heartbeat-rate составляет 10 секунд. Эти звуковые сигналы отправляются по каналу веб-сокета (если есть).
  • каждый HTTP-запрос к приложению также обновляет внутреннее состояние.
  • если последний сигнал контейнера длиннее, чем proxy.heartbeat-timeout назад, ShinyProxy завершает работу приложения. По умолчанию это 60 секунд.

Пока пользователь держит свой браузер открытым и соединение с веб-сокетом открыто или отправляются HTTP-запросы, ShinyProxy предполагает, что приложение уже используется, и поэтому не убьет его.
Обратите внимание, что Spring также будет держать сеанс пользователя открытым, пока приложение отправляет HTTP-запросы.

Поэтому может случиться так, что приложения живут долго. Однако я вижу, что у вас есть приложение, которое открыто в течение 75 часов, что составляет около трех дней, это будет означать, что компьютер пользователя работает в течение трех дней (без приостановки). Может ли это быть так? Если нет, возможно, вы обнаружили ошибку, о которой мы не знаем.

Кстати, у нас есть планы на функцию max-lifetime , которая убивает приложение через определенное время, независимо от того, используется ли оно. Это еще не реализовано и, вероятно, не войдет в следующий выпуск. Буду держать вас в курсе, если мы начнем над этим работать.

@LEDfan большое спасибо за разъяснения. Я не уверен, является ли длительный сеанс ошибкой или кто-то оставил вкладку на своем офисном компьютере (пытаясь получить дополнительную информацию от пользователя). Этот ограниченный срок действия сеанса является проблемой безопасности для нашей группы ИТ-безопасности (им не нравится видеть, как что-то входит в систему в течение длительного времени без того, чтобы там сидел пользователь). Что-то вроде max-lifetime действительно было бы полезно. Я думаю, что тем временем мы собираемся запечь функцию тайм-аута, как эта идея , чтобы представить нашим пользователям предупреждение о том, что они собираются выйти из системы, а затем убить сервер Shiny, если нет ответа, что (как я понимаю) должен очистить контейнеры докеров. Я продолжу и закрою это, основываясь на пояснении выше. Спасибо!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

dylancis picture dylancis  ·  3Комментарии

Emelieh21 picture Emelieh21  ·  5Комментарии

jfrubioz picture jfrubioz  ·  9Комментарии

algo-se picture algo-se  ·  6Комментарии

lucius-verus-fan picture lucius-verus-fan  ·  7Комментарии