Assembly Execution Progress: estado en tiempo real para tus Assemblies
Cuando finalizan las subidas, los usuarios aún quieren saber qué está ocurriendo con sus archivos. Nuestra nueva función Assembly Execution Progress cubre esa necesidad con eventos de progreso en tiempo real por archivo durante el procesamiento, para que tu interfaz pueda mostrar un estado útil en lugar de un simple indicador de carga.
Assembly Execution Progress aún es experimental. Su comportamiento, los detalles de la API y los precios pueden evolucionar mientras seguimos perfeccionándola. Si encuentras algún problema, contáctanos.
Por qué es importante
El progreso de la subida indica a los usuarios cuándo llega un archivo a nuestros servidores. Assembly Execution Progress les indica qué ocurre después: cuánto han avanzado sus archivos por cada Step de procesamiento. Esto hace que los pipelines complejos resulten confiables, especialmente cuando distintos archivos siguen rutas diferentes.
Cómo funciona
Transloadit estima el progreso general mediante la predicción de los Steps restantes de tu
Assembly y combina esas estimaciones con datos de ejecución en tiempo real (por ejemplo, el progreso del encoding
de /video/encode). Recibes un porcentaje combinado y valores de progreso por archivo,
actualizados aproximadamente cada dos segundos.
Actívalo en tu Assembly
Añade emit_execution_progress: true a tus Assembly Instructions cuando crees la
Assembly:
{
"steps": {
"resized": {
"robot": "/image/resize",
"use": ":original",
"width": 100,
"height": 100,
"resize_strategy": "fillcrop"
}
},
"emit_execution_progress": true
}
Consume el flujo de progreso
Abre el flujo de actualizaciones de la Assembly y escucha los eventos assembly_execution_progress. Cada
evento incluye una estimación general en progress_combined y un array de valores de progreso por archivo.
Cuando aún no se pueda estimar el progreso, mantén la interfaz en un estado indeterminado.
{
"progress_combined": 75,
"progress_per_original_file": [
{
"original_id": "6bb16f6cd49a44b4ae431f576e016c6d",
"progress": 50
},
{
"original_id": "56921a2dd46246d3b4d3a98b9f8ed4e1",
"progress": 100
}
]
}
Consejos para la interfaz
Combina el progreso de la subida con el progreso de ejecución para que los usuarios vean todo el pipeline.
Muestra el progreso por archivo en las subidas por lotes para evitar la impresión de que están «atascadas».
Usa el progreso combinado para una única barra general y el progreso por archivo para una vista de lista detallada.
Consideraciones que debes tener en cuenta
El progreso es una estimación, y algunos flujos de trabajo no pueden proporcionarlo de inmediato o en absoluto. Consulta la
guía sobre Assemblies compatibles
para conocer los casos de cantidades impredecibles de resultados, Assemblies de URL Transform y subidas multipart. Cada entrada de
progress_per_original_file identifica su archivo de entrada mediante original_id; los archivos importados sin ese ID
no se incluyen en la lista.
Próximos pasos
Lee la documentación de Assembly Execution Progress para conocer las reglas de compatibilidad, la ausencia de actualizaciones y el esquema de progreso que admite valores nulos. Después, usa la referencia del flujo de actualizaciones de Assembly para integrar los eventos en tu interfaz.
