2017-02-21 21 views
0

Моих сомнений очень SQLish ноaiopg/psycopg2 автокоммит и сделки

Поскольку psycopg2 асинхронных соединения автокоммят, я вручную настройку транзакции, определенную и затем закрыты в том же курсоре/соединении.

как это:

async def transaction(self, queries): 
    async with aiopg.create_pool(connection) as pool: 
     async with pool.acquire() as conn: 
      async with conn.cursor() as cur: 
       await cur.execute('BEGIN transaction;') 
       for query in queries: 
        await cur.execute(query) 
       await cur.execute('COMMIT transaction;') 

Мои сомнения, так как его укомплектовать асинхронный, если есть откат другие команды, которые были обработаны в то же промежутка времени будет также rolledback или будет твой откат соединения на основе?

Спасибо!

ответ

1

Откат основан на соединении.

+0

Спасибо, piro, я закончил использовать asyncpg, потому что поставляется со встроенными транзакциями, которые я чувствую, более безопасными, чем их вручную. – monobot