Ondersteuning voor een onderbreekbare bibliotheek

Overzicht

Aspose.Slides biedt een onderbreekbaar verwerkingsmechanisme voor langdurige presentatietaken, zoals deserialisatie, serialisatie en rendering. Dit mechanisme is gebaseerd op de InterruptionToken en InterruptionTokenSource klassen.

Een InterruptionToken kan worden toegewezen aan LoadOptions en doorgegeven aan de constructor van Presentation. Wanneer InterruptionTokenSource.interrupt wordt aangeroepen, wordt de bijbehorende langdurige taak onderbroken.

Onderbreekbare bibliotheek

Aspose.Slides for Python via Java biedt de InterruptionToken en InterruptionTokenSource klassen. Ze stellen u in staat om langdurige taken, zoals deserialisatie, serialisatie en rendering, te onderbreken.

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)  # Voer de actie uit in een aparte thread.
    time.sleep(10)  # Time-out.
    token_source.interrupt()  # Stop de conversie.
    conversion_task.result()

FAQ

Wat is het doel van de Aspose.Slides onderbreekbibliotheek?

Het biedt een mechanisme om langdurige bewerkingen — zoals het laden, opslaan of renderen van presentaties — te onderbreken voordat ze voltooid zijn. Dit is handig wanneer de verwerkingstijd beperkt moet worden of de taak niet meer nodig is.

Wat is het verschil tussen InterruptionToken en InterruptionTokenSource?

Welke taken kunnen worden onderbroken?

Elke Aspose.Slides-taak die een InterruptionToken accepteert — bijvoorbeeld het laden van een presentatie met Presentation of het opslaan met Presentation.save — kan worden onderbroken.

Wordt onderbreking onmiddellijk uitgevoerd?

Nee. Onderbreking is coöperatief: de operatie controleert periodiek het token en stopt zodra wordt gedetecteerd dat interrupt is aangeroepen.

Wat gebeurt er als ik interrupt aanroep nadat een taak al is voltooid?

Niets — de aanroep heeft geen effect als de betreffende taak al is voltooid.

Kan ik dezelfde InterruptionTokenSource voor meerdere taken hergebruiken?

Ja — maar nadat u interrupt op die bron aanroept, worden alle taken die zijn tokens gebruiken onderbroken. Gebruik afzonderlijke tokenbronnen om taken onafhankelijk te beheren.