在指定的时间内运行闪亮的应用程序

时间:2018-12-19 16:35:30

标签: r shiny rstudio

我只想运行ShinyApp大约一个小时,然后我想让我的应用停止自动运行,而不是手动单击Rstudio中的红色“停止”按钮。

有可能吗?

1 个答案:

答案 0 :(得分:3)

您可以使用invalidateLaterstopApp

变量now是在服务器函数外部定义的,因此它将在启动时执行并捕获启动时间。

此示例每1000毫秒重新执行一次观察者,并测试新的Sys.time()是否大于开始时间(now)加10秒。要将其更改为1小时,您必须将now + 10now + 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)