Почему блестящее приложение отключается, когда оно некоторое время не используется?

#r #shiny #shiny-server

#r #блестящий #блестящий сервер

Вопрос:

У меня есть блестящее приложение, запущенное на блестящем сервере, который установлен на сервере Ubuntu 16.04.

Когда приложение загружается в браузер, но некоторое время не запускается, оно отключается.

Есть ли решение, которое предотвращает это?

Комментарии:

1. Возможно, проблема с подключением, поскольку shiny взаимодействует с клиентами через постоянное соединение WebSocket…

Ответ №1:

Вы можете попробовать ввести повторяющийся сигнал в свою серверную функцию, которая работала для поддержания работоспособности моего приложения:

 #Keep App alive
keep_alive <- shiny::reactiveTimer(intervalMs = 10000, 
                                        session = shiny::getDefaultReactiveDomain())

shiny::observe({keep_alive()})
  
  

Ответ №2:

На самом деле вы можете отключить app_idle_timeout навсегда, установив для него значение 0 в файле конфигурации вашего сервера Shiny:

 location / {
    app_idle_timeout 0;
}
  

Комментарии:

1. Это круто. @anddt Где бы вы сохранили этот файл? И работает ли это также при размещении приложения не на shinyserver?

2. При использовании shiny-server для размещения приложения Shiny файл конфигурации можно найти по адресу /etc/shiny-server/shiny-server.conf .

3. Это самое элегантное решение, но у меня есть случай, когда блестящий сервер работает в среде Kubernetes, где настройки не могут быть изменены, поскольку они скрыты. Тогда решение джандеркрана — ваш единственный вариант.

4. @Wilbert э-э, k8s не упоминался в вашем вопросе. Но в целом да, если развернуть таким образом shiny-server.conf , это было бы бессмысленно, и единственный способ — поддерживать само приложение в рабочем состоянии (следите за загрузкой сервера, если приложение загружает большие данные).