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.
Advertencia
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 flujos de trabajo complejos resulten confiables, especialmente cuando distintos archivos siguen rutas diferentes.
Cómo funciona
Transloadit calcula 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 un porcentaje combinado y un arreglo de valores de progreso por archivo.
{
"progress_combined": 75,
"progress_per_original_file": [
{
"original_id": "6bb16f6cd49a44b4ae431f576e016c6d",
"progress": 50
},
{
"original_id": "56921a2dd46246d3b4d3a98b9f8ed4e1",
"progress": 100
}
]
}
Puedes consultar todos los detalles del flujo en la documentación del flujo de actualizaciones de Assembly y en el tema sobre Assembly Execution Progress.
Consejos para la interfaz
Consejo
Combina el progreso de la subida con el progreso de ejecución para que los usuarios vean todo el flujo de trabajo.
Consejo
Muestra el progreso por archivo en las subidas por lotes para evitar la impresión de que están «atascadas».
Consejo
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
Algunos Steps tienen cantidades de resultados impredecibles (por ejemplo, al 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 estos finalicen. Después, las actualizaciones se reanudarán con normalidad.
Execution Progress no está disponible para las Assemblies de URL Transform (se
ignora incluso si la opción está activada). En las subidas multipart, el progreso solo comienza una vez que se
extraen los metadatos de la subida, por lo que no verás eventos de ejecución hasta que finalicen las subidas. Por último,
progress_per_original_file usa original_id como clave, de modo 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 detallada o ejemplos de código, comienza con la documentación de Assembly Execution Progress y después integra los eventos del flujo en tu interfaz.
