Как автоматически обновлять данные в блестящей панели из базы данных MySQL? - PullRequest
0 голосов
/ 24 октября 2018

Я хочу обновлять данные каждый час на своей блестящей панели.Так что графики в shinydashboard автоматически обновляются ежечасно.

Есть ли какой-нибудь источник, где я могу изучить или какой-нибудь пример кода для практики?

Спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Я получил это с функцией invalidateLater.В приведенном ниже коде я просто попытался получить разные имена из таблицы MySQL.После первого запуска sparkApp я добавил уникальную строку в ту же таблицу, чтобы по истечении указанного времени (я проверил с 60000 мс) мы можем проверить, обновляется или нет.После указанного времени должно отображаться вновь введенное имя.(Измените его на 3600000 мс для вашего требования.)

library(shiny)
library(DBI)
library(pool)
pool <- dbPool(drv = RMySQL::MySQL(),dbname = "database",host = "localhost",username = "username",password = "password", port = 3306, unix.sock = "/var/run/mysqld/mysqld.sock")

ui <- fluidPage(
  uiOutput("names")
)

server <- function(input, output, session){
  getNames <- function(x){
    dbGetQuery(x, "SELECT DISTINCT names from dummyTable;")
  }

  refreshData <- reactive({
    invalidateLater(60000, session) 
    getNames(pool)
  })
  output$names <- renderUI({
    selectInput(inputId = "name", label = "First names", choices = c(as.character(refreshData()[,1])))
  })  
}

shinyApp(ui, server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...