reactiveFileReader
From shiny v0.12.2
by Winston Chang
Reactive file reader
Given a file path and read function, returns a reactive data source for the contents of the file.
Usage
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.
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.
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).
See Also
Examples
# 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()
})
}
Community examples
Looks like there are no examples yet.