gpt4 book ai didi

r - 如何定期更新 Shiny 应用程序中的数据?

转载 作者:行者123 更新时间:2023-12-04 09:45:32 26 4
gpt4 key购买 nike

我已经部署了带有几个 Shiny 应用程序的 Shiny 服务器。每个应用程序都用作在线仪表板,应根据我的计划定期刷新(例如每 2 小时或每天晚上 10 点)。

现在每个应用程序的服务器代码看起来像

## server.R

data<-sqlQuery(...)

shinyServer(function(input, output,session) {
...
renderPlotly()
}

主要目标是在每次服务器启动时刷新使用 SQL 加载的全局数据,而无需重新启动服务器本身。我对使用reactivePoll 或invalidateLater 的响应式(Reactive)解决方案不感兴趣,因为这种方法每次用户在浏览器中刷新页面时都会导致多个查询。

实际上,我对 Shiny 没有提供此类功能的任何 native 实现感到有些困惑。是否有任何很好的解决方法来做到这一点?

最佳答案

第一步是让自己成为一个自动调度程序。我使用 taskscheduleR 是因为我一生都无法弄清楚 Windows 调度程序,以及用于其他一些棘手事情的 later 包。

然后,您需要安排 SQL 下载,并将该 SQL 保存为 R 镜像。

最后,只需使用 deployApp("...", launch.browser = F, forceUpdate = T)
我的工作流程

library(later)

shiny.auto <- function(interval = 2*60*60){ # 2 hours 60 minutes 60 seconds
source("script source1")
source("shinyappscript")
later::later(shiny.auto, interval)
}

脚本源1:
data<-sqlQuery(...)
save.image(...)

Shiny 的应用脚本:
load(...)
deployApp("...", launch.browser = F, forceUpdate = T)

希望这可以帮助!

关于r - 如何定期更新 Shiny 应用程序中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51609653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com