Progreso de ejecución de Assembly: estado en tiempo real para tus Assemblies
Cuando terminan los uploads, los usuarios aún quieren saber qué está pasando con sus archivos. Nuestra nueva funcionalidad Assembly Execution Progress cubre ese vacío con eventos de progreso en tiempo real por archivo durante el procesamiento, para que tu UI pueda mostrar un estado significativo en lugar de un simple spinner.
Advertencia
Assembly Execution Progress aún es experimental. Su comportamiento, los detalles de la API y los precios pueden evolucionar mientras seguimos refinándolo. Si encuentras problemas, por favor contáctanos.
Por qué importa
El progreso de subida les indica a los usuarios cuándo un archivo llega a nuestros servidores. Assembly Execution Progress les indica qué sucede después: cuánto han avanzado sus archivos a través de cada Step de procesamiento. Esto hace que los pipelines complejos se sientan confiables, especialmente cuando distintos archivos toman rutas diferentes.
Cómo funciona
Transloadit estima el progreso general al predecir los Steps restantes en tu
Assembly y combinar esas estimaciones con datos de ejecución en vivo (por ejemplo, el progreso de encoding
de /video/encode). Recibirás un porcentaje combinado más valores de progreso por archivo,
actualizados aproximadamente cada dos segundos.
Habilítalo en tu Assembly
Agrega emit_execution_progress: true a tus Assembly Instructions cuando crees el
Assembly:
{
"steps": {
"resized": {
"robot": "/image/resize",
"use": ":original",
"width": 100,
"height": 100,
"resize_strategy": "fillcrop"
}
},
"emit_execution_progress": true
}
Consume el stream de progreso
Abre el stream de actualizaciones del Assembly y escucha eventos assembly_execution_progress. Cada
evento incluye un porcentaje combinado y un array de valores de progreso por archivo.
{
"progress_combined": 75,
"progress_per_original_file": [
{
"original_id": "6bb16f6cd49a44b4ae431f576e016c6d",
"progress": 50
},
{
"original_id": "56921a2dd46246d3b4d3a98b9f8ed4e1",
"progress": 100
}
]
}
Puedes encontrar todos los detalles del stream en la documentación del stream de actualizaciones de Assembly y en el tema de Assembly Execution Progress.
Consejos para la UI
Consejo
Combina el progreso de subida con el progreso de ejecución, para que los usuarios vean el pipeline completo.
Consejo
Muestra el progreso por archivo en subidas por lote para evitar la impresión de que algo está “atascado”.
Consejo
Usa el progreso combinado para una sola barra general y el progreso por archivo para una vista de lista detallada.
Consideraciones a tener en cuenta
Ciertos Steps tienen conteos de resultados impredecibles (por ejemplo, importar directorios, extraer archivos comprimidos o generar miniaturas de documentos sin una lista fija de páginas). Si tu Assembly incluye esos Steps, el progreso de ejecución no se emitirá hasta que se completen. Después de eso, las actualizaciones se reanudan con normalidad.
Execution Progress no está disponible para Assemblies de URL Transform (se
ignora incluso si la opción está configurada). Para uploads multipart, el progreso solo comienza una vez que se extraen los
metadatos del upload, así que no verás eventos de ejecución hasta que los uploads terminen. Por último,
progress_per_original_file está indexado por original_id, así que los archivos importados sin un ID original
no aparecerán en la lista por archivo.
Próximos pasos
Si quieres una guía más completa o ejemplos de código, empieza con la documentación de Assembly Execution Progress y luego conecta los eventos del stream a tu UI.
