دعم مكتبة قابلة للمقاطعة
نظرة عامة
توفر Aspose.Slides آلية معالجة قابلة للمقاطعة للمهام الطويلة الأمد الخاصة بالعروض التقديمية، مثل فك التسلسل، التسلسل، وعرض الرسومات. تستند هذه الآلية إلى الفئتين InterruptionToken و InterruptionTokenSource.
يمكن تعيين InterruptionToken إلى LoadOptions وتمريره إلى مُنشىء Presentation. عندما يتم استدعاء InterruptionTokenSource.interrupt، يتم مقاطعة المهمة الطويلة المرتبطة.
مكتبة قابلة للمقاطعة
توفر Aspose.Slides لـ Python عبر Java الفئتين InterruptionToken و InterruptionTokenSource. تتيح لكما مقاطعة المهام الطويلة مثل فك التسلسل، التسلسل، والعرض.
- InterruptionTokenSource هو المصدر للرموز (token) التي يتم تمريرها إلى LoadOptions.setInterruptionToken.
- عند استدعاء LoadOptions.setInterruptionToken وتمرير مثيل LoadOptions إلى مُنشىء Presentation، يؤدي استدعاء InterruptionTokenSource.interrupt إلى مقاطعة أي عملية طويلة الأمد مرتبطة بذلك Presentation.
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) # تشغيل الإجراء في خيط منفصل.
time.sleep(10) # انتهت المهلة.
token_source.interrupt() # إيقاف التحويل.
conversion_task.result()
الأسئلة الشائعة
ما هو هدف مكتبة مقاطعة Aspose.Slides؟
توفر آلية لمقاطعة العمليات الطويلة — مثل تحميل العروض، حفظها، أو عرضها — قبل إكمالها. يكون ذلك مفيدًا عندما يجب تحديد وقت المعالجة أو عندما لا تكون المهمة مطلوبة بعد.
ما الفرق بين InterruptionToken و InterruptionTokenSource?
- InterruptionToken يتم تمريره إلى API الخاص بـ Aspose.Slides ويتم فحصه أثناء العمليات الطويلة.
- InterruptionTokenSource يُستخدم في التعليمات البرمجية الخاصة بك لإنشاء الرموز وتفعيل المقاطعة عن طريق استدعاء interrupt.
ما هي المهام التي يمكن مقاطعتها؟
يمكن مقاطعة أي مهمة من Aspose.Slides تقبل InterruptionToken — مثل تحميل عرض تقديمي باستخدام Presentation أو حفظه باستخدام Presentation.save —.
هل تحدث المقاطعة فورًا؟
لا. المقاطعة تعاونية: تقوم العملية بفحص الرمز بشكل دوري وتتوقف بمجرد اكتشاف أنه تم استدعاء interrupt.
ماذا يحدث إذا استدعيت interrupt بعد إكمال المهمة بالفعل؟
لا شيء — لا يؤثر الاستدعاء إذا كانت المهمة المعنية قد انتهت بالفعل.
هل يمكنني إعادة استخدام نفس InterruptionTokenSource لعدة مهام؟
نعم — ولكن بعد استدعاء interrupt على ذلك المصدر، ستُقطع جميع المهام التي تستخدم رموزه. استخدم مصادر رموز منفصلة لإدارة المهام بشكل مستقل.