reactiveFileReader
reactiveFileReader(intervalMillis, session, filePath, readFunc, ...)
Arguments
intervalMillis | Approximate number of milliseconds to wait between checks of the file's last modified time. This can be a numeric value, or a function that returns a numeric value. |
---|---|
session | The user session to associate this file reader with, or
NULL if none. If non-null, the reader will automatically stop when
the session ends. |
filePath | The file path to poll against and to pass to readFunc .
This can either be a single-element character vector, or a function that
returns one. |
readFunc | The function to use to read the file; must expect the first argument to be the file path to read. The return value of this function is used as the value of the reactive file reader. |
... | Any additional arguments to pass to readFunc whenever it is
invoked. |
Value
-
A reactive expression that returns the contents of the file, and
automatically invalidates when the file changes on disk (as determined by
last modified time).
Description
Given a file path and read function, returns a reactive data source for the contents of the file.
Details
reactiveFileReader
works by periodically checking the file's last
modified time; if it has changed, then the file is re-read and any reactive
dependents are invalidated.
The intervalMillis
, filePath
, and readFunc
functions
will each be executed in a reactive context; therefore, they may read
reactive values and reactive expressions.
Examples
## Not run: ------------------------------------
# # Per-session reactive file reader
# shinyServer(function(input, output, session)) {
# fileData <- reactiveFileReader(1000, session, 'data.csv', read.csv)
#
# output$data <- renderTable({
# fileData()
# })
# }
#
# # Cross-session reactive file reader. In this example, all sessions share
# # the same reader, so read.csv only gets executed once no matter how many
# # user sessions are connected.
# fileData <- reactiveFileReader(1000, session, 'data.csv', read.csv)
# shinyServer(function(input, output, session)) {
# output$data <- renderTable({
# fileData()
# })
# }
## ---------------------------------------------