如何使用 Shiny 应用程序实时监控文件系统(或其他外部事件)的更改?例如,假设我有一个仪表板应用程序,它提供服务器上文件的统计信息。我想在这些文件发生变化或添加新文件时实时更新我的统计数据。
我的想法是在客户端使用Javascript定期轮询服务器。例如,每隔 10 秒,我可能会调用Shiny.setInputValue("check.fs", 1, {priority: "event"});,然后在我拥有的服务器上调用observeEvent(input$check.fs, { ... }),这将更新反应。
还有其他想法吗?有没有办法只在服务器上执行此操作而不使用 JavaScript?
小智 1
shiny 有一个名为 with 的函数invalidatelater,您可以使给定的反应式上下文无效。这使得可以以一定的间隔重新评估函数。
https://shiny.rstudio.com/reference/shiny/1.0.5/invalidateLater.html
希望这可以帮助!