我有两个简单的 Python/psycopg2 程序。一种是在表上运行 SELECT 语句并返回结果的服务器。另一个是 CLI,可以在同一个表中添加、删除和检索记录。
单独来看,每个功能似乎都运行良好。但是,当同时运行时,即使在不同的机器上,一个也会正常运行,另一个会挂起:strace 显示它使用 sendto() 运行第一个查询,然后挂在后续的 poll() 上。
这只出现在其他 psycopg2 程序中。通过 pgcli 或 psql 连接似乎不会影响 psycopg2 程序。
我正在使用来自 dockerhub 的 postgres 镜像。 查询确实显示那些第一个 DROP 语句阻塞。
我不确定可能出了什么问题,需要一些指导。
我想测试 psql 或 pgcli 是否也会挂起,所以我连接并运行
\dt
,但没有看到表。我忘了提交()。