Я использую reactivePoll, чтобы обновить свою блестящую панель инструментов. Когда я впервые запускаю приложение, оно работает нормально. Я дал интервал времени в 1 минуту для обновления данных. Через 1-ю минуту данные обновятся, как и ожидалось. Со следующей минуты функция проверки запускается каждую минуту, но функция значения не запускается, и я не получаю последние данные.
app.R
library(shiny)
library(shinythemes)
library(shinyWidgets)
library(shinydashboard)
library(shinycssloaders)
library(RPostgreSQL)
library(pool)
library(config)
library(plotly)
library(data.table)
Sys.setenv(R_CONFIG_ACTIVE = "xyz")
config <- config::get()
pool <- dbPool(
drv = dbDriver("PostgreSQL"),
host = config$host,
dbname = config$dbname,
port = config$port,
user = config$user,
password = config$password
)
onStop(function() {
poolClose(pool)
})
get_data <- function(pool) {
abc <- dbGetQuery(pool,"SELECT * FROM tablename") #Query to pull data
return(abc)
}
abc <- get_data(pool = pool)
ui <- dashboardPage(
dashboardHeader(
title = 'Dashboard'
),
dashboardSidebar(
sidebarMenu(
menuItem("pqr", tabName = "pqrs")
)
),
dashboardBody(
tabItems(
tabItem(
tabName = 'pqrs',
hemaTab("pqr",abc = abc)
)
)
)
)
server <- function(input, output, session) {
pollData <- reactivePoll(60000, session,
checkFunc = function() {
print("Entered Check")
Sys.time()
print(Sys.time())
},
valueFunc = function() {
print("Entered value")
get_data(pool)
}
)
order(input, output, session, data = pollData())
}
shinyApp(ui = ui, server = server)
pqrs.R
pqrs <- function(id, label = "pqr",pqrs) {
ns <- NS(id)
tabPanel('pqr',
tabsetPanel(
tabPanel('Downloads',
fluidPage(
fluidRow(
column(12,
DT::dataTableOutput("table")
)
)
)
)
)
)
}
order <- function(input, output, session, data) {
downloaddata <- reactive({
setDT(data)
})
output$table <- DT::renderDataTable( DT::datatable({
downloaddata()
})
)
}
I get the following result after running the app
"Entered Check"
[1] "2018-12-20 09:53:06 EST"
[1] "Entered Check"
[1] "2018-12-20 09:53:07 EST"
[1] "entered value"
After 1 minute the dashboard gets refreshed and I get the following
result
[1] "Entered Check"
[1] "2018-12-20 09:54:07 EST"
Со следующей минуты приборная панель НЕ обновляется, но запускается функция проверки и отображается время.