Skip to content

Commit 2bf2f97

Browse files
authored
try fix
1 parent cfd22f5 commit 2bf2f97

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

frameworks/Python/blacksheep/app-socketify.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -111,21 +111,26 @@ async def db_updates_test(request,queries):
111111
random.sample(range(1, 10000), num_queries)
112112
), key=lambda x: x[1])
113113
worlds = [{"id": row_id, "randomNumber": number} for row_id, number in updates]
114-
async with db_pool.connection() as db_conn:
115-
await db_conn.execute("SET TRANSACTION ISOLATION LEVEL READ COMMITTED")
116-
async with db_conn.cursor() as cursor:
117-
for row_id, number in updates:
118-
await cursor.execute(READ_ROW_SQL, (row_id,))
119-
await cursor.fetchone()
120-
for _ in range(5):
121-
try:
122-
await cursor.executemany(WRITE_ROW_SQL + " NOWAIT", [(number, row_id) for row_id, number in updates])
123-
break
124-
except psycopg.errors.DeadlockDetected:
125-
await db_conn.rollback()
126-
continue
127-
# await cursor.executemany(WRITE_ROW_SQL, [(number, row_id) for row_id, number in updates])
128-
return bs.json(worlds)
114+
for _ in range(5):
115+
async with db_pool.connection() as db_conn:
116+
try:
117+
await db_conn.execute("SET TRANSACTION ISOLATION LEVEL READ COMMITTED")
118+
async with db_conn.cursor() as cursor:
119+
for row_id, number in updates:
120+
await cursor.execute(READ_ROW_SQL, (row_id,))
121+
await cursor.fetchone()
122+
for _ in range(5):
123+
try:
124+
await cursor.executemany(WRITE_ROW_SQL, [(number, row_id) for row_id, number in updates])
125+
return bs.json(worlds)
126+
except psycopg.errors.DeadlockDetected:
127+
await db_conn.rollback()
128+
continue
129+
# await cursor.executemany(WRITE_ROW_SQL, [(number, row_id) for row_id, number in updates])
130+
except (psycopg.errors.OperationalError, psycopg.errors.PipelineAborted):
131+
await db_conn.rollback()
132+
continue
133+
raise Exception("connect error")
129134

130135
@bs.get('/plaintext')
131136
async def plaintext_test(request):

0 commit comments

Comments
 (0)