【发布时间】:2018-05-24 11:15:37
【问题描述】:
我正在将包pool 用于 Shiny-app,它建立了与我的 PostgreSQL-DB 的连接。在没有运行应用程序的情况下,我有时会收到以下错误消息。此外,当我在本地运行代码时,会出现相同的错误,有时会重复出现。
postgresqlQuickSQL(conn, statement, ...) 中的警告:不能 创建执行:postgresqlExecStatement 中的 SELECT 1 错误(conn, 语句,...):RS-DBI 驱动程序:(无法运行语句:否 连接到服务器)
是因为池创建了与数据库的连接,并且在一段时间后数据库(或服务器)由于超时而断开连接?
无论如何,在我的代码中没有任何地方我正在创建一个内部包含SELECT 1 的 SQL 查询。
- 查询是否来自池本身(
validateQuery())? - 如何防止出现此错误?
在我的 ShinyApp 中,我还有以下代码可以在应用关闭后结束池连接:
session$onSessionEnded(function() {
pool::poolClose(pool)
})
此外,在运行 ShinyApp 时,该应用程序运行良好且行为符合预期。但是当我关闭应用程序时,RStudio 经常崩溃,我必须重新打开它并重新加载项目。
- 这是为什么呢?
- 如何找出导致崩溃的原因?
【问题讨论】:
标签: r postgresql shiny pool r-dbi