запустить блестящее приложение на указанное время - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу, чтобы приложениеручно включать приложение в течение часа, а затем я хочу, чтобы мое приложение автоматически останавливалось, вместо того, чтобы щелкать рукой по красной кнопке СТОП в Rstudio.

Возможно ли это?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете использовать invalidateLater и stopApp.

Переменная now определена вне функции сервера, поэтому она будет выполняться при запуске и захватывать время запуска.

Этот пример повторно выполняет наблюдатель каждые 1000 миллисекунд и проверяет, больше ли новый Sys.time(), чем Starttime (now) плюс 10 секунд.Чтобы изменить его на 1 час, вы должны обменять now + 10 на now + 3600.И вы также можете увеличить invalidateLater, например, до 30 минут (invalidateLater(1800000)).

Через 10 секунд он переходит в состояние if и останавливает приложение.

library(shiny)

ui <- fluidPage(
  sliderInput("test", "test", 1, 100, 1, 1)
)

now <- Sys.time()

server <- function(input, output, session) {
  observe({
    invalidateLater(1000)
    print(paste("Actual Time: ", Sys.time(), " - Endtime: ", now + 10))
    if (Sys.time() > now + 10) {
      print("Stop the App")
      stopApp()
    }
  })
}

shinyApp(ui, server)
...