问题标签 [pgx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
26 浏览

go - Pgxpool 在扫描时返回“池关闭”错误

我正在尝试在新的 go 应用程序中实现 pgxpool。尝试扫描结构后,我不断收到“池已关闭”错误。

pgx 记录器在连接后给了我这个。我认为 pgxpool 应该保持开放。

{"level":"info","msg":"关闭连接","pid":5499,"time":"2022-02-24T16:36:33+10:30"}

这是我的路由器代码

然后,在一个帮助文件中,我设置了资源

此代码末尾出现“池已关闭”错误

0 投票
1 回答
60 浏览

go - 如何确定哪个 goroutine 阻塞了执行?

全部。

我有一个小型解析器,可以将找到的数据写入 Postgres,作为我使用的数据库框架https://github.com/jackc/pgx

我将解析后的数据从各种 goroutine 写入无缓冲通道。

我有特殊的 goroutine,我从这个通道读取数据并将其写入数据库。

我正在调试一个应用程序,它在某个时间后永远挂起(可能等待与池中数据库的免费连接)。

如何确定哪个 goroutine 阻塞了执行?

我听说有一个 pprof,但我从未使用过它。谢谢。

最小的例子:我有这样的结构

在单独的 goroutine 中,我像这样初始化无缓冲通道:

然后我启动各种 goroutines,在其中运行解析器:

每个解析器收集数据并将其传递给通道,如下所示:

并在一个单独的 goroutine 中启动这样的函数:

数据在此函数中存储在数据库中:

0 投票
1 回答
40 浏览

postgresql - Go 和 pgx:无法将 [+11111111111] 转换为文本

我是 golang 和 pgx 的新手,当我尝试运行一个简单的查询时遇到了问题。我在 postgres 中有下表。

当我尝试运行以下查询时:

我收到以下错误:无法将 [+111111111] 转换为文本。

编辑 03/05/2022

我应该注意,我将 包装pgxpool.Pool在我自己的结构中,并且由于某种原因,当我直接使用 pgxpool 时实际上没有问题。

我假设然后类型信息发生了一些事情,但仍然无法弄清楚如何修复它。

当我在 中打印args类型信息时SQLClient.Query,使用fmt.Println(reflect.TypeOf(args)),我得到以下信息: []interface {}