【发布时间】:2015-08-29 12:41:15
【问题描述】:
我在 Python 中使用 psycopg2 执行长时间查询时遇到问题。 当查询时间超过 180 秒时,脚本执行会长时间挂起。
我使用Python 3.4.3 和psycopg2 2.6.1。
这里是重现问题的示例:
import psycopg2
cnn = psycopg2.connect(
database='**********',
user='**********',
password='**********',
host='**********',
port=5432,
)
print("Connected")
cursor = cnn.cursor()
seconds = 5
print("Sleep %s seconds"%seconds)
cursor.execute("SELECT pg_sleep(%s);"%seconds)
print("Exit.")
当查询需要 5 秒时,脚本可以正常工作:
$python3 /tmp/test.py
Connected
Sleep 5 seconds
Exit.
但是当秒数大约为 180 或更大时,cursor.execute 行挂起,并且永远不会执行以下指令:
import psycopg2
cnn = psycopg2.connect(
database='**********',
user='**********',
password='**********',
host='**********',
port=5432,
)
print("Connected")
cursor = cnn.cursor()
seconds = 180
print("Sleep %s seconds"%seconds)
cursor.execute("SELECT pg_sleep(%s);"%seconds)
print("Exit.")
这是一个输出:
$python3 /tmp/test.py
Connected
Sleep 5 seconds
<Never exit>
有谁知道如何解决这个问题? 谢谢。
【问题讨论】:
标签: python python-3.x psycopg2