我只想运行ShinyApp大约一个小时,然后我想让我的应用停止自动运行,而不是手动单击Rstudio中的红色“停止”按钮。
有可能吗?
答案 0 :(得分:3)
您可以使用invalidateLater
和stopApp
。
变量now
是在服务器函数外部定义的,因此它将在启动时执行并捕获启动时间。
此示例每1000毫秒重新执行一次观察者,并测试新的Sys.time()
是否大于开始时间(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)