Kesintiye Ulaşılabilir Kütüphane Desteği

Genel Bakış

Aspose.Slides, serileştirme, serileştirme ve renderleme gibi uzun süren sunum görevleri için kesintiye izin veren bir işleme mekanizması sağlar. Bu mekanizma, InterruptionToken ve InterruptionTokenSource sınıflarına dayanır.

Bir InterruptionToken LoadOptions nesnesine atanabilir ve Presentation yapıcısına geçirilebilir. InterruptionTokenSource.interrupt çağrıldığında, ilişkili uzun süren görev kesintiye uğrar.

Kesintiye Ulaşılabilir Kütüphane

Aspose.Slides for Python via Java, InterruptionToken ve InterruptionTokenSource sınıflarını sağlar. Bunlar, serileştirme, serileştirme ve renderleme gibi uzun süren görevleri kesmenize olanak tanır.

Aşağıdaki kod parçacığı çalışan bir görevi kesintiye uğratmayı gösterir:

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)  # Eylemi ayrı bir iş parçacığında çalıştır.
    time.sleep(10)  # Zaman aşımı.
    token_source.interrupt()  # Dönüştürmeyi durdur.
    conversion_task.result()

SSS

Aspose.Slides kesinti kütüphanesinin amacı nedir?

Uzun süren işlemleri—sunumları yükleme, kaydetme veya renderleme gibi—tamamlanmadan önce kesintiye uğratmak için bir mekanizma sağlar. İşlem süresi sınırlı olduğunda ya da göreve artık ihtiyaç duyulmadığında yararlıdır.

InterruptionToken ve InterruptionTokenSource arasındaki fark nedir?

Hangi görevler kesintiye uğratılabilir?

Bir InterruptionToken kabul eden herhangi bir Aspose.Slides görevi—örneğin Presentation ile bir sunumu yüklemek ya da Presentation.save ile kaydetmek—kesintiye uğratılabilir.

Kesinti hemen gerçekleşir mi?

Hayır. Kesinti iş birliğine dayalıdır: işlem periyodik olarak tokenı kontrol eder ve interrupt çağrıldığını fark eder etmez durur.

Bir görev zaten tamamlandıktan sonra interrupt çağrısı yaparsam ne olur?

Hiçbir şey—ilgili görev zaten tamamlandıysa çağrı hiçbir etki yapmaz.

Aynı InterruptionTokenSource birden fazla görev için yeniden kullanılabilir mi?

Evet—ancak o kaynakta interrupt çağrıldıktan sonra, tokenlarını kullanan tüm görevler kesintiye uğrar. Görevleri bağımsız yönetmek için ayrı token kaynakları kullanın.