Я постоянно получаю сообщение об ошибке
psycopg2.ProgrammingError: execute cannot be used while an asynchronous query is underway
Насколько я понимаю, из-за этого я пытаюсь использовать данные, пока запрос еще не завершен. Как я могу это исправить? Я использую что-то вроде этого (flask + socket.io + psycopg2), если укоротить код до хорошего примера:
def wait(conn):
while True:
state = conn.poll()
if state == psycopg2.extensions.POLL_OK:
break
elif state == psycopg2.extensions.POLL_WRITE:
select.select([], [conn.fileno()], [])
elif state == psycopg2.extensions.POLL_READ:
select.select([conn.fileno()], [], [])
else:
raise psycopg2.OperationalError("poll() returned %s" % state)
try:
aconn = psycopg2.connect(f"dbname='{db_name}' user='{db_user}' host='{db_host}' password='{db_pass}'", async_=1)
wait(aconn)
c = aconn.cursor()
except Exception as e:
print('Exception:', str(e))
@socketio.on('uploaddata')
def on_send(data):
id = data['id']
lablvlid = data['lablvlID']
player = data['player']
s = f"select * from cart_plcl where id='{id}' and lablvlid ='{lablvlid}' and player='{player}'"
c.execute(s)
wait(c.connection)
result = c.fetchall()
for r in result:
#do something