我有一个非常简单的 Python 代码片段来运行 Postgres 查询,然后将结果发送到仪表板。我psycopg2
用来定期运行相同的查询。我们暂时不用担心循环机制。
conn = psycopg2.connect(<connection info>)
while True:
# Run query and update dashboard
cur = conn.cursor()
cur.execute(q_tcc)
query_results = cur.fetchall()
update_dashboard(query_results)
time.sleep(5)
作为参考,实际查询是:
q_tcc = """SELECT client_addr, application_name, count(*) cnt FROM pg_stat_activity
GROUP BY client_addr, application_name ORDER BY cnt DESC;"""
当我运行它时,即使它们应该改变,我仍然得到相同的结果。如果我psycopg2.connect()
用 a 将该行移入循环conn.close()
,则一切正常。然而,根据连接和游标文档,我应该能够一直使用相同的游标(因此,连接)。
这是否意味着 Postgres 在每个客户端连接的基础上缓存我的查询?