மேலாளரை செயல்தவிர்க்கவும்

நவீன பயன்பாடுகளில் செயல்தவிர் தேவையான அம்சமாகும். கஃபர் விதிவிலக்கல்ல. இடத்தில் செயல்தவிர் செயல்பாட்டைக் கொண்டிருப்பது என்பது நீங்கள் மாதிரியை மாற்றி பழைய நிலைக்கு எளிதாக மாற்றலாம் என்பதாகும்.

பரிவர்த்தனைகளின் கண்ணோட்டம்

கஃபரில் ஏற்படும் மாற்றங்களின் பதிவு மற்றும் பின்னணி செயல்தவிர் மேலாளரால் கையாளப்படுகிறது. செயல்தவிர் மேலாளர் பரிவர்த்தனை ரீதியாக வேலை செய்கிறார். ஒரு பரிவர்த்தனை ஒரு முழுமையான அலகு என வெற்றிபெற வேண்டும் அல்லது தோல்வியடைய வேண்டும். பரிவர்த்தனை நடுவில் தோல்வியுற்றால், அது மீண்டும் உருட்டப்படுகிறது. Kaphor இல் இது transaction தொகுதியால் அடையப்படுகிறது, இது ஒரு சூழல் மேலாளரை Transaction ஐ வழங்குகிறது.

பரிவர்த்தனைகள் நடைபெறும் போது, அவை சிறந்த பரிவர்த்தனை தொடங்கி முடிந்ததும் நிகழ்வுகளை வெளியிடுகின்றன. நிகழ்வு அறிவிப்புகள் பரிவர்த்தனையின் தொடக்கத்திற்கானவை, மேலும் பரிவர்த்தனை வெற்றிகரமாக இருந்தால் அல்லது அது தோல்வியுற்றால் பரிவர்த்தனையின் மறுசீரமைப்பு.

செயல்தவிர் மேலாளர் ஒரு பரிவர்த்தனையில் மாற்றங்களை மட்டுமே அனுமதிக்கிறார். ஒரு பரிவர்த்தனைக்கு வெளியே ஒரு மாற்றம் செய்யப்பட்டால், ஒரு விதிவிலக்கு எழுப்பப்படுகிறது.

ஒரு பரிவர்த்தனையின் தொடக்க

  1. A Transaction object is created.

  2. TransactionBegin event is emitted.

  3. The UndoManager instantiates a new ActionStack which is the transaction object, and adds the undo action to the stack.

ஏற்கனவே நடந்து கொண்டிருக்கும் மற்றொரு பரிவர்த்தனைக்குள் ஒரு பரிவர்த்தனை சேர்க்க அனுமதிக்க உள்ளமைக்கப்பட்ட பரிவர்த்தனைகள் ஆதரிக்கப்படுகின்றன.

வெற்றிகரமான பரிவர்த்தனை

  1. A TransactionCommit event is emitted

  2. The UndoManager closes and stores the transaction.

தோல்வியுற்ற பரிவர்த்தனை

  1. A TransactionRollback event is emitted.

  2. The UndoManager plays back all the recorded actions, but does not store it.

பரிவர்த்தனை பநிஇ

Note

செயல்தவிர் மேலாளர் செயலில் இருந்தால் மட்டுமே உங்களுக்கு பரிவர்த்தனைகள் தேவை.

class gaphor.transaction.Transaction(event_manager, context: str | None = None)[source]

பரிவர்த்தனை.

ஒரு பரிவர்த்தனையின் தொடக்கத்திலும் முடிவிலும் ஒரு நிகழ்வு வெளிப்படும். பரிவர்த்தனைகள் கூடு கட்டப்படலாம். வெளிப்புற பரிவர்த்தனை தொடங்கி முடிவடையும் போது மட்டுமே நிகழ்வுகள் வெளிப்படும்.

பரிவர்த்தனைகள் உலகளாவிய கட்டமைப்பாகும் என்பதை நினைவில் கொள்க.

>>> import gaphor.core.eventmanager
>>> event_manager = gaphor.core.eventmanager.EventManager()

பரிவர்த்தனைகள் கூடு கட்டப்படலாம். வெளிப்புற பரிவர்த்தனை செய்யப்பட்டால் அல்லது மீண்டும் உருட்டப்பட்டால், ஒரு நிகழ்வு வெளிப்படும்.

சூழல் மேலாளராக Transaction ஐப் பயன்படுத்துவது மிகவும் வசதியானது:

>>> with Transaction(event_manager) as ctx:
...     ... # do actions
...     # in case the transaction should be rolled back:
...     ctx.rollback()

நிகழ்வுகளை நிரல் முறையில் கையாள முடியும், இருப்பினும் இது ஊக்கமளிக்கிறது:

>>> tx = Transaction(event_manager)
>>> tx.commit()
commit()[source]

பரிவர்த்தனை செய்யுங்கள்.

பரிவர்த்தனை மூடப்பட்டுள்ளது. ப TransactionCommit நிகழ்வு உமிழப்படுகிறது. பரிவர்த்தனையை மீண்டும் உருட்ட வேண்டும் என்றால், a TransactionRollback நிகழ்வு அதற்கு பதிலாக வெளியேற்றப்படுகிறது.

classmethod in_transaction() bool[source]

நீங்கள் ஒரு பரிவர்த்தனைக்குள் ஓடுகிறீர்களா?

classmethod mark_rollback()[source]

ரோல்பேக்கிற்கான பரிவர்த்தனையைக் குறிக்கவும்.

இந்த செயல்பாடு பரிவர்த்தனையை மூடாது, அதற்கு பதிலாக மாற்றங்களை நேர்த்தியாக மாற்றியமைக்க இது உங்களை அனுமதிக்கும்.

rollback()[source]

பரிவர்த்தனை ரோல்-பேக்.

முதலில், பரிவர்த்தனை மூடப்பட்டுள்ளது. ப TransactionRollback நிகழ்வு உமிழப்படுகிறது.

class gaphor.event.TransactionBegin(context: str | None)[source]

இந்த நிகழ்வு ஒரு பரிவர்த்தனையின் தொடக்கத்தைக் குறிக்கிறது.

உள்ளமைக்கப்பட்ட (துணை) பரிவர்த்தனைகள் இந்த சமிக்ஞையை வெளியிடக்கூடாது.

class gaphor.event.TransactionCommit(context: str | None)[source]

ஒரு பரிவர்த்தனை (டோப்ல்வெல்) வெற்றிகரமாக உறுதியளிக்கும் போது இந்த நிகழ்வு வெளிப்படும்.

class gaphor.event.TransactionRollback(context: str | None)[source]

இந்த நிகழ்வு தோல்வியுற்றது என்று சொல்ல இந்த நிகழ்வு உமிழ்கிறது.

செயல்பாடுகளின் தொகுப்பு தோல்வியுற்றால் (விதிவிலக்கு காரணமாக ஈ.ஐ.

குறிப்புகள்