Megszakítható könyvtár támogatása

Áttekintés

Az Aspose.Slides megszakítható feldolgozási mechanizmust biztosít a hosszú ideig futó bemutató feladatokhoz, például a deszerializáláshoz, szerializáláshoz és rendereléshez. Ez a mechanizmus a InterruptionToken és a InterruptionTokenSource osztályokon alapul.

Egy InterruptionToken hozzárendelhető a LoadOptions osztályhoz, és átadható a Presentation konstruktorának. Amikor a InterruptionTokenSource.interrupt meghívásra kerül, a kapcsolódó hosszú ideig futó feladat megszakad.

Megszakítható könyvtár

Az Aspose.Slides for Python via Java biztosítja a InterruptionToken és a InterruptionTokenSource osztályokat. Lehetővé teszik a hosszú ideig futó feladatok, például a deszerializálás, szerializálás és renderelés megszakítását.

Az alábbi kódrészlet bemutatja egy futó feladat megszakítását:

from concurrent.futures import ThreadPoolExecutor
import time

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import InterruptionTokenSource, LoadOptions, Presentation, SaveFormat


token_source = InterruptionTokenSource()


def convert_presentation():
    load_options = LoadOptions()
    load_options.setInterruptionToken(token_source.getToken())

    presentation = Presentation("sample.pptx", load_options)
    try:
        presentation.save("sample.ppt", SaveFormat.Ppt)
    finally:
        presentation.dispose()


with ThreadPoolExecutor(max_workers=1) as executor:
    conversion_task = executor.submit(convert_presentation)  # Futtassa a műveletet egy külön szálban.
    time.sleep(10)  # Időtúllépés.
    token_source.interrupt()  # Állítsa le a konverziót.
    conversion_task.result()

GYIK

Mi a célja az Aspose.Slides megszakítási könyvtárának?

Mechanizmust biztosít a hosszú ideig futó műveletek—például a prezentációk betöltése, mentése vagy renderelése—megszakításához, mielőtt befejeződnének. Ez akkor hasznos, ha a feldolgozási időt korlátozni kell, vagy a feladat már nem szükséges.

Mi a különbség a InterruptionToken és a InterruptionTokenSource között?

  • InterruptionToken átadásra kerül az Aspose.Slides API-nak, és a hosszú ideig futó műveletek során ellenőrzésre kerül.
  • InterruptionTokenSource a kódban használható tokenek létrehozására és a megszakítások kiváltására a interrupt meghívásával.

Mely feladatok szakíthatók meg?

Bármely Aspose.Slides feladat, amely elfogad egy InterruptionToken—például egy prezentáció betöltése a Presentation vagy a mentése a Presentation.save segítségével—megszakítható.

A megszakítás azonnal megtörténik?

Nem. A megszakítás együttműködésen alapul: a művelet időközönként ellenőrzi a tokent, és leáll, amint észleli, hogy a interrupt meghívásra került.

Mi történik, ha a interrupt meghívását egy már befejezett feladat után végzem?

Semmi— a hívás nem okoz semmit, ha a megfelelő feladat már befejeződött.

Újra felhasználhatom ugyanazt a InterruptionTokenSource több feladathoz?

Igen—de miután meghívja a interrupt függvényt azon a forráson, az összes, az ő tokenjeit használó feladat megszakad. Használjon külön tokenforrásokat a feladatok független kezeléséhez.