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