Υποστήριξη για Βιβλιοθήκη με Δυνατότητα Διακοπής
Επισκόπηση
Το Aspose.Slides παρέχει έναν μηχανισμό επεξεργασίας με δυνατότητα διακοπής για ενέργειες παρουσίασης μεγάλης διάρκειας, όπως απο-σειριοποίηση, σειριοποίηση και απόδοση. Αυτός ο μηχανισμός βασίζεται στις κλάσεις InterruptionToken και InterruptionTokenSource.
Ένα InterruptionToken μπορεί να εκχωρηθεί στο LoadOptions και να περαστεί στον κατασκευαστή της Presentation. Όταν κληθεί η μέθοδος InterruptionTokenSource.interrupt, η συσχετισμένη εργασία μεγάλης διάρκειας διακόπτεται.
Βιβλιοθήκη με Δυνατότητα Διακοπής
Το Aspose.Slides for Python via Java παρέχει τις κλάσεις InterruptionToken και InterruptionTokenSource. Επιτρέπουν τη διακοπή εργασιών μεγάλης διάρκειας όπως απο-σειριοποίηση, σειριοποίηση και απόδοση.
- Το InterruptionTokenSource είναι η πηγή του (των) token(s) που περνιούνται στο 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 χρησιμοποιείται στον κώδικά σας για τη δημιουργία token και την ενεργοποίηση διακοπών καλώντας τη μέθοδο interrupt.
Ποιες εργασίες μπορούν να διακοπούν;
Οποιαδήποτε εργασία του Aspose.Slides που δέχεται ένα InterruptionToken — όπως η φόρτωση μιας παρουσίασης με τη Presentation ή η αποθήκευση με τη Presentation.save — μπορεί να διακοπεί.
Συμβαίνει η διακοπή αμέσως;
Όχι. Η διακοπή είναι συνεργατική: η λειτουργία ελέγχει περιοδικά το token και σταματά αμέσως μόλις διαπιστώσει ότι το interrupt έχει κληθεί.
Τι συμβαίνει αν καλέσω το interrupt αφού η εργασία έχει ήδη ολοκληρωθεί;
Τίποτα — η κλήση δεν έχει καμία επίδραση αν η αντίστοιχη εργασία έχει ήδη τελειώσει.
Μπορώ να ξαναχρησιμοποιήσω το ίδιο InterruptionTokenSource για πολλές εργασίες;
Ναι — αλλά αφού καλέσετε το interrupt σε αυτήν την πηγή, όλες οι εργασίες που χρησιμοποιούν τα tokens της θα διακοπούν. Χρησιμοποιήστε ξεχωριστές πηγές token για ανεξάρτητη διαχείριση των εργασιών.