gpt4 book ai didi

go - SQL 查询在服务器上完成但程序永远不会恢复

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:03 24 4
gpt4 key购买 nike

我正在使用 go-lang postgres 驱动程序将我的 go 脚本连接到 redshift。当查询需要 5 分钟以上的时间才能完成时,我的程序永远无法收回控制权。在 redshift-server 检查查询后,我确实看到该查询在 ~7 分钟内完成。

不知道为什么会这样。

我的代码

func truncate_and_populate_set_1(db *sql.DB, parameter string){
insert_q := `...`
db := GetDB()
util.ExeQ(db, insert_q)
log.Println("Done adding records to table")
}

func GetDB() *sql.DB {
connection_string := "postgres://%s:%s@host"
db, err := sql.Open("postgres", connection_string)
if err != nil {
fmt.Println(err)
}
return db
}

func ExeQ(db *sql.DB, query string) {
_, err := db.Exec(query)
if err != nil {
log.Fatal(err)
}
}

最佳答案

您需要更改管理 Redshift 连接的库的保持事件状态行为。不幸的是,我无法就如何在 Go 中执行此操作提供建议。

对于 JDBC URL,您可以附加以下选项:

jdbc:redshift://my-cluster … :5439/user?tcpKeepAlive=true&TCPKeepAliveMinutes=2

有关更多选项,请参阅此处的文档:http://docs.aws.amazon.com/redshift/latest/mgmt/troubleshooting-connections.html

关于go - SQL 查询在服务器上完成但程序永远不会恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47058996/

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