如何从MySQL数据库中自动更新闪亮仪表盘中的数据? [英] How to update data automatically in shiny dashboard from mysql database?

查看:0
本文介绍了如何从MySQL数据库中自动更新闪亮仪表盘中的数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望每小时刷新一次我闪亮仪表板中的数据。以便shinydashboard中的图表每小时自动更新一次。

有没有我可以学习的来源或可以练习的示例代码?

谢谢。

推荐答案

我用invalidateLater函数得到了这个。在下面的代码中,我只是尝试从MySQL表中获取不同的名称。在第一次运行shinyApp之后,我在同一个表中添加了一个唯一的行,以便在指定的时间(我用60000毫秒检查)之后,我们可以检查是否刷新了SHINY。它应该在该指定时间之后显示新输入的名称。(根据需要将其更改为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)

这篇关于如何从MySQL数据库中自动更新闪亮仪表盘中的数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆