Stöd för ett avbrottsbibliotek
Översikt
Aspose.Slides tillhandahåller en avbrottbar bearbetningsmekanism för långvariga presentationsuppgifter, såsom deserialisering, serialisering och rendering. Denna mekanism är baserad på klasserna InterruptionToken och InterruptionTokenSource.
Ett InterruptionToken kan tilldelas LoadOptions och skickas till konstruktorn för Presentation. När InterruptionTokenSource.interrupt anropas avbryts den associerade långvariga uppgiften.
Avbrottsbibliotek
Aspose.Slides för Python via Java tillhandahåller klasserna InterruptionToken och InterruptionTokenSource. De låter dig avbryta långvariga uppgifter som deserialisering, serialisering och rendering.
- InterruptionTokenSource är källan till token(en) som skickas till LoadOptions.setInterruptionToken.
- När LoadOptions.setInterruptionToken anropas och instansen av LoadOptions skickas till konstruktorn för Presentation, avbryter ett anrop av InterruptionTokenSource.interrupt alla långvariga uppgifter som är associerade med den Presentation.
Följande kodexempel visar hur man avbryter en pågående uppgift:
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) # Kör åtgärden i en separat tråd.
time.sleep(10) # Tidsgräns.
token_source.interrupt() # Stoppa konverteringen.
conversion_task.result()
Vanliga frågor
Vad är syftet med Aspose.Slides avbrottsbibliotek?
Det tillhandahåller en mekanism för att avbryta långvariga operationer—såsom att läsa in, spara eller rendera presentationer—innan de slutförs. Detta är användbart när bearbetningstiden måste begränsas eller när uppgiften inte längre behövs.
Vad är skillnaden mellan InterruptionToken och InterruptionTokenSource?
- InterruptionToken skickas till Aspose.Slides‑API:et och kontrolleras under långvariga operationer.
- InterruptionTokenSource används i din kod för att skapa token och trigga avbrott genom att anropa interrupt.
Vilka uppgifter kan avbrytas?
Alla Aspose.Slides‑uppgifter som accepterar en InterruptionToken—såsom att läsa in en presentation med Presentation eller spara med Presentation.save—kan avbrytas.
Sker avbrottet omedelbart?
Nej. Avbrott är samarbetsbaserat: operationen kontrollerar token periodiskt och stoppar så snart den upptäcker att interrupt har anropats.
Vad händer om jag anropar interrupt efter att en uppgift redan har slutförts?
Ingenting—anropet har ingen effekt om den motsvarande uppgiften redan har slutförts.
Kan jag återanvända samma InterruptionTokenSource för flera uppgifter?
Ja—men efter att du anropar interrupt på den källan kommer alla uppgifter som använder dess token att avbrytas. Använd separata tokenkällor för att hantera uppgifter oberoende.