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.
- InterruptionTokenSource a token(ek) forrása, amely(ek)et a LoadOptions.setInterruptionToken kapja.
- Amikor a LoadOptions.setInterruptionToken meghívásra kerül, és a LoadOptions példány átadásra kerül a Presentation konstruktorának, a InterruptionTokenSource.interrupt meghívása megszakítja a hozzá kapcsolódó bármely hosszú ideig futó feladatot a Presentation esetében.
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.