R与连接池
你能想到的,往往都有人帮你实现了,比如R下数据库连接池的问题,答案也是肯定的,而且是由大名顶顶RStudio来实现的,Object Pooling in R
这货不仅仅是数据库连接池,只是目前仅支持DBI罢了。
#devtools::install_github("rstudio/pool")
library(pool)
pool <- dbPool(
drv = RMySQL::MySQL(),
dbname = "shinydemo",
host = "shiny-demo.csa7qlmguqrf.us-east-1.rds.amazonaws.com",
username = "guest",
password = "guest"
)
dbGetQuery(pool, "SELECT * FROM City LIMIT 5;")
conn <- poolCheckout(pool)
rs <- dbSendQuery(conn, "SELECT * FROM City LIMIT 5;")
if (dbGetInfo(rs, what = "rowCount") > 5) {
warning("dubious result -- rolling back transaction")
dbRollback(conn)
}
poolReturn(conn) ## alternatively, use: dbDisconnect(conn)