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í.
- InterruptionTokenSource je zdroj tokenu(ů) předávaných do LoadOptions.setInterruptionToken.
- Když je zavolána metoda LoadOptions.setInterruptionToken a instance LoadOptions je předána konstruktoru Presentation, volání InterruptionTokenSource.interrupt přeruší jakoukoli dlouho běžící úlohu spojenou s touto Presentation.
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?
- InterruptionToken je předáván API Aspose.Slides a kontrolován během dlouho běžících operací.
- InterruptionTokenSource se používá ve vašem kódu k vytváření tokenů a spouštění přerušení voláním interrupt.
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.