Podpora přerušitelné knihovny

Přehled

Aspose.Slides poskytuje přerušitelný zpracovatelský mechanismus pro dlouho běžící úlohy prezentací, jako je deserializace, serializace a vykreslování. Tento mechanismus je založen na třídách InterruptionToken a InterruptionTokenSource.

InterruptionToken může být přiřazen k LoadOptions a předán konstruktoru Presentation. Když je zavolána metoda InterruptionTokenSource.interrupt, související dlouho běžící úloha je přerušena.

Přerušitelná knihovna

Aspose.Slides for Python via Java poskytuje třídy InterruptionToken a InterruptionTokenSource. Umožňují přerušit dlouho běžící úlohy, jako je deserializace, serializace a vykreslování.

Následující úryvek kódu ukazuje, jak přerušit běžící úlohu:

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)  # Spusťte akci v odděleném vláknu.
    time.sleep(10)  # Časový limit.
    token_source.interrupt()  # Zastavte konverzi.

Často kladené otázky

Jaký je účel interrupt knihovny Aspose.Slides?

Poskytuje mechanismus pro přerušení dlouho běžících operací—jako je načítání, ukládání nebo vykreslování prezentací—před jejich dokončením. To je užitečné, když je nutné omezit čas zpracování nebo již úloha není potřeba.

Jaký je rozdíl mezi InterruptionToken a InterruptionTokenSource?

Jaké úlohy lze přerušit?

Jakákoli úloha Aspose.Slides, která přijímá InterruptionToken—například načítání prezentace pomocí Presentation nebo ukládání pomocí Presentation.save—může být přerušena.

Probíhá přerušení okamžitě?

Ne. Přerušení je kooperativní: operace periodicky kontroluje token a zastaví se, jakmile zjistí, že bylo voláno interrupt.

Co se stane, když zavolám interrupt po dokončení úlohy?

Nic—volání nemá žádný efekt, pokud byla příslušná úloha již dokončena.

Mohu znovu použít stejný InterruptionTokenSource pro více úloh?

Ano—ale po volání interrupt na tomto zdroji budou všechny úlohy používající jeho tokeny přerušeny. Používejte samostatné zdroje tokenů pro nezávislé řízení úloh.