我需要在一分钟内多次调用Update。这是正确的方法吗?我认为不是,因为有时我会遇到异常 -
cursor already closed
。我从多个线程调用这个函数,可能需要锁定这部分?
conn = psycopg2.connect(dbname='MyDB', user='...', password='...', host='127.0.0.1')
cursor = conn.cursor()
def update_data(name,type, value):
cursor.execute("UPDATE Datas SET Value = %s WHERE Name = %s and Type = %s", (value, name, type))
conn.commit()
或者我每次都需要打开连接并初始化光标?我每分钟拨打
update_data
约 600 次。
我需要查看网站上的实时数据更新。可能需要此信息。
与其提交每个数据,不如将数据存储在列表中一段时间,例如让函数仅在有 1000 个数据项时提交。这将使您的代码高效。您可以使用列表来存储数据而不是提交。然后仅当列表的
len()
大于 1000 时才运行更新。将列表传递给 update() 函数并在其中运行 for 循环。一切执行完毕后commit。