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.
- InterruptionTokenSource LoadOptions.setInterruptionToken yöntemiyle geçirilen token(ler)in kaynağıdır.
- LoadOptions.setInterruptionToken çağrıldığında ve LoadOptions örneği Presentation yapıcısına geçirildiğinde, InterruptionTokenSource.interrupt yürütülmesi, o Presentation ile ilişkili herhangi bir uzun süren görevi kesintiye uğratı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?
- InterruptionToken Aspose.Slides API’sine geçirilir ve uzun süren işlemler sırasında kontrol edilir.
- InterruptionTokenSource kodunuzda tokenlar oluşturmak ve interrupt çağrısı yaparak kesintileri tetiklemek için kullanılır.
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.