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.

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?

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.