Υποστήριξη για Βιβλιοθήκη με Δυνατότητα Διακοπής

Επισκόπηση

Το Aspose.Slides παρέχει έναν μηχανισμό επεξεργασίας με δυνατότητα διακοπής για ενέργειες παρουσίασης μεγάλης διάρκειας, όπως απο-σειριοποίηση, σειριοποίηση και απόδοση. Αυτός ο μηχανισμός βασίζεται στις κλάσεις InterruptionToken και InterruptionTokenSource.

Ένα InterruptionToken μπορεί να εκχωρηθεί στο LoadOptions και να περαστεί στον κατασκευαστή της Presentation. Όταν κληθεί η μέθοδος InterruptionTokenSource.interrupt, η συσχετισμένη εργασία μεγάλης διάρκειας διακόπτεται.

Βιβλιοθήκη με Δυνατότητα Διακοπής

Το Aspose.Slides for Python via Java παρέχει τις κλάσεις InterruptionToken και InterruptionTokenSource. Επιτρέπουν τη διακοπή εργασιών μεγάλης διάρκειας όπως απο-σειριοποίηση, σειριοποίηση και απόδοση.

Το παρακάτω απόσπασμα κώδικα δείχνει πώς να διακόψετε μια εκτελούμενη εργασία:

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 χρησιμοποιείται στον κώδικά σας για τη δημιουργία token και την ενεργοποίηση διακοπών καλώντας τη μέθοδο interrupt.

Ποιες εργασίες μπορούν να διακοπούν;

Οποιαδήποτε εργασία του Aspose.Slides που δέχεται ένα InterruptionToken — όπως η φόρτωση μιας παρουσίασης με τη Presentation ή η αποθήκευση με τη Presentation.save — μπορεί να διακοπεί.

Συμβαίνει η διακοπή αμέσως;

Όχι. Η διακοπή είναι συνεργατική: η λειτουργία ελέγχει περιοδικά το token και σταματά αμέσως μόλις διαπιστώσει ότι το interrupt έχει κληθεί.

Τι συμβαίνει αν καλέσω το interrupt αφού η εργασία έχει ήδη ολοκληρωθεί;

Τίποτα — η κλήση δεν έχει καμία επίδραση αν η αντίστοιχη εργασία έχει ήδη τελειώσει.

Μπορώ να ξαναχρησιμοποιήσω το ίδιο InterruptionTokenSource για πολλές εργασίες;

Ναι — αλλά αφού καλέσετε το interrupt σε αυτήν την πηγή, όλες οι εργασίες που χρησιμοποιούν τα tokens της θα διακοπούν. Χρησιμοποιήστε ξεχωριστές πηγές token για ανεξάρτητη διαχείριση των εργασιών.