Python:从Thread调用时解密失败或错误记录mac

Ivá*_*ván 4 python encryption postgresql multithreading database-connection

我在这个代码片段中遇到"解密失败或错误记录mac"错误:

conn = psycopg2.connect(...)
cursor = conn.cursor()
cursor.execute("SELECT id, ip FROM schema.table;")
rows = cursor.fetchall()
cursor.close()
conn.commit()
conn.close()
Run Code Online (Sandbox Code Playgroud)

这在Thread的run()方法中调用,在while(True)循环中多次调用.我只是使用psycopg2驱动程序打开与PostgreSQL数据库的连接.

在Python中打开数据线连接到线程的安全性是什么?我不知道是什么引起了这个错误.

Ivá*_*ván 5

好吧,看起来我已经解决了这个问题.我创建了太多的连接,似乎我的内存不足或什么的.我收集了所有查询,并使用一个巨大的查询执行一次cursor.execute(...),而不是执行数百个小查询/连接.

conn = psycopg2.connect(...)
cursor = conn.cursor()
cursor.execute("SELECT id, ip FROM schema.table;")
rows = cursor.fetchall()
cursor.close()
conn.commit()
conn.close()
conn = None
Run Code Online (Sandbox Code Playgroud)

  • 只是旁注:一个`conn作为游标:`将把corsor创建,`cursor.close()`和`conn.commit()`合并为一个. (5认同)