【发布时间】:2017-10-20 21:01:50
【问题描述】:
希望是一个简单的问题。我在一个运行良好的闪亮应用中有这样一行:
autoInvalidate <- reactiveTimer(120000)
无论如何设置一个事件以每 5 分钟执行一次,而不仅仅是设置间隔?因此,例如,如果应用程序在下午 6:03 启动,它将在下午 6:05、下午 6:10 和下午 6:15 等执行反应元素。
【问题讨论】:
希望是一个简单的问题。我在一个运行良好的闪亮应用中有这样一行:
autoInvalidate <- reactiveTimer(120000)
无论如何设置一个事件以每 5 分钟执行一次,而不仅仅是设置间隔?因此,例如,如果应用程序在下午 6:03 启动,它将在下午 6:05、下午 6:10 和下午 6:15 等执行反应元素。
【问题讨论】:
这可能取决于您尝试更新的反应元素,但您可以通过反应轮询和lubridate 包中的floor_date 来完成此操作。
因此,您将拥有一些依赖于 reactivePoll 函数提供的数据的反应元素,并且此数据每 5 分钟更新一次,如下所示:
data <- reactivePoll(intervalMillis = 60000, session,
checkFunc = function() {
#check the time, rounded down to the previous 5 minute interval
lubridate::floor_date(Sys.time(), "5 mins")
},
valueFunc = function() {
#if checkFunc value has changed since the last check, return some updated value or updated dataset
get_value()
}
)
【讨论】: