gpt4 book ai didi

postgresql - 如何在 groovy 中处理 PostgreSQL 超时

转载 作者:行者123 更新时间:2023-11-29 14:27:39 26 4
gpt4 key购买 nike

在我的 Groovy 脚本中,我有以下结构:

def sql = Sql.newInstance(connString, "user", "password", 
"org.postgresql.Driver")

sql.withTransaction {
sql.withBatch(){}

sql.withBatch(){}

sql.withBatch(){}

.........

}

sql.close()

我想在这里处理超时问题。

但是Sql API 没有任何方法。

那我该怎么做呢?我正在使用 PostgreSQL 驱动程序。

我遇到了 this .但是我得到错误:

java.sql.SQLFeatureNotSupportedException: Method org.postgresql.jdbc4.Jdbc4Connection.setNetworkTimeout(Executor, int) is not yet implemented.

附言:

int[] modifyCount = sql.withBatch(batchSize, updateQuery) { ps ->
keyValue.each { k,v ->
ps.addBatch(keyvalue:k, newvalue:v)
}
}

在上面的代码中,当我尝试添加 ps.setQueryTimeout() 时,错误消息说没有定义这样的方法。

最佳答案

低级超时可以通过连接属性定义:

https://jdbc.postgresql.org/documentation/head/connect.html

  • loginTimeout 指定等待建立数据库连接的时间。
  • connectTimeout 用于套接字连接操作的超时值。
  • socketTimeout 用于套接字读取操作的超时值。

这些属性可以在连接 URL 或附加的 Properties 对象参数中指定。

查询超时。连接到数据库后,您可以定义要为每个语句执行的闭包:

sql.withStatement{java.sql.Statement stmt->
stmt.setQueryTimeout( MY_SQL_TIMEOUT )
}

关于postgresql - 如何在 groovy 中处理 PostgreSQL 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56108609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com