闪亮的服务器 - 安排 mysql 查询而不是每次加载应用程序时运行?
Posted
技术标签:
【中文标题】闪亮的服务器 - 安排 mysql 查询而不是每次加载应用程序时运行?【英文标题】:Shiny server - schedule mysql query instead of running everytime the app is loaded? 【发布时间】:2017-04-24 19:12:36 【问题描述】:我在 Azure 的 Ubuntu VM 中运行了一个闪亮的服务器。
如何安排每晚在 server.R 中的 mysql 查询?以及如何避免每次访问应用程序时都运行它们?
这是我的 server.R 和 ui.R 的示例:
服务器.R
library(shiny)
library(RMySQL)
library(ggplot2)
#library(ggiraph)
library(lubridate)
##Connect to Redmine db
con <- dbConnect(MySQL(),
user = '#',
password = '#',
host = '#',
dbname='#')
tickets<-dbGetQuery(con, "Select * from table")
issues_speed_unique<-unique(na.omit(dbGetQuery(con,"Select * from table2")))
dbDisconnect (con)
some aggregations....
shinyServer(
function(input,output)
ui.R
library(shiny)
library(ggplot2)
#library(ggiraph)
#library(htmltools)
library(lubridate)
shinyUI(fluidPage(
【问题讨论】:
您可以尝试从以系统日期命名的缓存文件中读取数据,如果不存在,则从查询中创建它。但是当天的第一个用户会比较慢。 谢谢@HubertL,听起来不错。我一直在寻找如何创建缓存文件,但似乎没有找到任何提示(我能理解)。你能推荐点什么吗? 【参考方案1】:用code I found there的这种改编替换server.R中的开始代码:
filename <- paste0(Sys.Date(),'.RData')
if (!file.exists(filename))
# don't have a cached copy so run the query
library(RMySQL)
con <- dbConnect(MySQL(),
user = '#',
password = '#',
host = '#',
dbname='#')
tickets<-dbGetQuery(con, "Select * from table")
issues_speed_unique<-unique(na.omit(dbGetQuery(con,"Select * from table2")))
dbDisconnect (con)
# save the query results for the future
save(list=c('tickets', 'issues_speed_unique'), file=filename)
rm(list=c('tickets', 'issues_speed_unique') )
load(file=filename)
【讨论】:
以上是关于闪亮的服务器 - 安排 mysql 查询而不是每次加载应用程序时运行?的主要内容,如果未能解决你的问题,请参考以下文章
创建一个带有闪亮的条形图,每次选择一个区域时都会显示一个新图