[genropy] Re: Transazioni in genropy

  • From: Gollum1 <gollum1.smeagol1@xxxxxxxxx>
  • To: genropy@xxxxxxxxxxxxx
  • Date: Fri, 15 Dec 2017 18:27:28 +0000

Il 15 dicembre 2017 16:39:29 CET, Giovanni Porcari <giovanni.porcari@xxxxxxxxx> 
ha scritto:



Il giorno 15 dic 2017, alle ore 16:33, Silvano Valleferro
<s.valleferro@xxxxxxxxxxx> ha scritto:

Ciao a tutti,

Ho un dubbio in merito alla gestione delle transazioni in genropy.

Ho un programma che funziona a mo' di servizio, cioè è sempre in
esecuzione e svolge una serie di operazioni per l'acquisizione
automatica di documenti.
Ogni qualvolta effettua un ciclo positivo, cioè trova un documento da
importare, inserisce in alcune tabelle dei record che vengono
confermati, alla fine del ciclo con un db.commit()

Ora, vorrei poter gestire, sempre all'interno dello stesso ciclo,
anche i dati di un'altra tabella, che registra le operatività eseguite,
a cui dovrei fare il commit in modo autonomo da quello precedente (come
fosse un'altra transazione), senza che mi chiuda anche quella
principale.
E' possibile ?
E come ?


Ciao Silvano

genropy supporta questa funzionalità.

invece di scrivere ad esempio

mytable.insert(x)

with self.db.tempEnv(connectionName='foo'):
    mytable.insert(x)
    self.db.commit()


Ovviamente nella with puoi mettere più istruzioni che accedano al db.
Quindi è come se aprissi una sottotransazione con il suo commit.

Ovviamente nel caso di rollback della transazione primaria
quella secondaria resterebbe comunque già committatas quindi
occhio a gestire la cosa


Ciao

G

Se non ricordo male, questo che hai descritto, è l'implementazione della 
tabella di log delle operazioni, in cui anche il rilascio della principale 
sarebbe comunque un commit neo lug.
-- 
Gollum1
Tesssoro, dov'è il mio tesssoro...

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli 
errori (maledetto correttore automatico).

Other related posts: