@@ -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' )
131136async def plaintext_test (request ):
0 commit comments