Assembly Execution Progress
Diese Funktion befindet sich noch in einer experimentellen Phase. Ihr genaues Verhalten, ihre API und ihre Preisgestaltung können sich ändern, während wir weiter daran arbeiten. Falls Sie Fehler oder ungewöhnliches Verhalten feststellen, kontaktieren Sie uns bitte.
Assembly Execution Progress liefert
Echtzeitschätzungen dazu, wie weit die Ausführung einer
Assembly fortgeschritten ist. Ein Prozentwert wird sowohl
für den Fortschritt der gesamten Assembly als auch für
jede hochgeladene Datei berechnet sowie für alle Importe, die eine original_id enthalten. Dadurch erhalten Sie
präzise Fortschrittsinformationen, selbst wenn Dateien innerhalb derselben
Assembly unterschiedlich verarbeitet werden, beispielsweise aufgrund verschiedener Dateitypen.
Zur Berechnung dieser Prozentwerte prognostiziert unsere Assembly-Engine,
welche Steps voraussichtlich für den verbleibenden Teil der
Assembly ausgeführt werden. Diese Prognose wird anschließend mit den
bereits abgeschlossenen Steps verglichen, um den geschätzten Fortschritt zu ermitteln.
Anschließend verbessern wir diese Schätzung durch Fortschrittsinformationen der derzeit ausgeführten
Steps. Bei /video/encode-
Steps berücksichtigen wir beispielsweise, welcher Anteil des
Videos aktuell codiert wurde.
Assembly Execution Progress ist eine wertvolle Erweiterung Ihrer Benutzeroberfläche, die Ihren Benutzern Einblick in die Verarbeitung ihrer Dateien gibt. In Kombination mit dem regulären Upload-Fortschritt, der den Fortschritt bei der Übertragung der Dateien Ihrer Benutzer auf unsere Server anzeigt, vermittelt Assembly Execution Progress Ihren Benutzern, dass ihre Dateien zuverlässig verarbeitet werden und die Vorgänge im Hintergrund laufen.
Kompatible Assemblies
Wir versuchen, Execution Progress für jede Assembly bereitzustellen. Dies ist jedoch nicht in allen Fällen zuverlässig möglich. Wenn Ihre Assembly einen Step mit einer nicht vorhersehbaren Anzahl von Ergebnissen enthält, kann der Fortschritt erst geschätzt werden, nachdem dieser Step abgeschlossen ist. Sobald jedoch alle diese Steps abgeschlossen sind, kann Execution Progress berechnet werden.
Bei folgenden Steps lässt sich die Anzahl der Ergebnisse nicht vorhersagen:
- Importieren von Verzeichnissen über
/s3/import,/azure/importusw. Dies gilt nicht für den Import einer festgelegten Anzahl von Dateien. /file/compress: Extrahieren beliebiger Archivtypen./document/thumbs: Erstellen von Thumbnails für ein Dokument, ohne die Seitenzahl anzugeben.
Wenn Ihre Assembly keine solchen Steps enthält, ist Execution Progress von Anfang an verfügbar. Wenn sie solche Steps enthält, ist der Fortschritt verfügbar, nachdem diese Steps abgeschlossen wurden.
Execution Progress ist für
URL-Transform-Assemblies nicht verfügbar; das emit_execution_progress-Flag wird ignoriert. Bei mehrteiligen
Uploads kann die Fortschrittsermittlung erst beginnen, nachdem die Upload-Metadaten extrahiert wurden. Dies geschieht, sobald die Uploads
abgeschlossen sind.
Assembly Execution Progress aktivieren
Sie müssen sich für jede Assembly, für die Sie
Execution Progress erhalten möchten, ausdrücklich anmelden. Dies
erfolgt beim Erstellen der Assembly, indem Sie die Eigenschaft
"emit_execution_progress": true in die Assembly
Instructions aufnehmen, zum Beispiel:
{
"steps": {
"resized": {
"robot": "/image/resize",
"use": ":original",
"width": 100,
"height": 100,
"resize_strategy": "fillcrop",
},
// ...
},
// ...
// Enable execution progress
"emit_execution_progress": true,
}
Schnellstart
- Fügen Sie
"emit_execution_progress": truezu Ihren Assembly Instructions hinzu. - Öffnen Sie den Assembly-Aktualisierungsstream.
- Reagieren Sie auf das Ereignis
assembly_execution_progressund aktualisieren Sie Ihre Benutzeroberfläche.
Execution Progress empfangen
Assembly Execution Progress kann über den Aktualisierungsstream der Assembly abgerufen werden. Kurz gesagt: Nachdem eine Assembly erstellt wurde, enthält der Assembly Status eine URL, über die Sie Nachrichten und Ereignisse zum Status der Assembly in Echtzeit abrufen können. Die genauen Einzelheiten finden Sie in der Dokumentation.
Sobald der Aktualisierungsstream einer Assembly geöffnet und
Execution Progress aktiviert ist, erhalten Sie
regelmäßig etwa alle 2 Sekunden Fortschrittsaktualisierungen. Die Aktualisierung wird über das Ereignis
assembly_execution_progress gesendet. Sie enthält eine JSON-Nutzlast, die den Fortschritt der
gesamten Assembly und jeder Originaldatei beschreibt, also der Uploads und aller
Importe, die eine original_id enthalten, zum Beispiel:
{
"progress_combined": 75,
"progress_per_original_file": [
{
"original_id": "6bb16f6cd49a44b4ae431f576e016c6d",
"progress": 50
},
{
"original_id": "56921a2dd46246d3b4d3a98b9f8ed4e1",
"progress": 100
}
]
}
Im obigen Beispiel ist die Verarbeitung der gesamten Assembly zu
75 % abgeschlossen. Die Verarbeitung der Datei mit der original_id 56921a2dd46246d3b4d3a98b9f8ed4e1 ist abgeschlossen.
Das bedeutet, dass sie alle ihre Steps durchlaufen hat. Die
Datei mit der original_id 6bb16f6cd49a44b4ae431f576e016c6d ist noch nicht fertig und hat bisher einen Fortschritt
von 50 % erreicht.
Wenn keine Fortschrittsschätzung verfügbar ist, weil die Assembly nicht abgeschlossene Steps enthält, deren Anzahl von Ergebnissen nicht vorhergesagt werden kann, wird kein Ereignis ausgegeben, bis diese Steps abgeschlossen sind.