Compartir a través de

Need Help with Azure App Logic!

Javier GL 0 Puntos de reputación
22 ago 2024, 20:15

I’m working on an Azure App Logic workflow with the following connectors: When a HTTP Request is Received Parse JSON For Each Here’s the issue: I receive an HTTP request with a JSON array of 2000 objects. Processing this array is causing a timeout.

WorkFlowActionResponseTimedOut

The execution of template action 'Response' is failed: the client application timed out waiting for a response from service. This means that workflow took longer to respond than the alloted timeout value. The connection maintained between the client application and service will be closed and client application will get an HTTP status code 504 Gateway Timeout.

User's image

Azure
Azure
Plataforma e infraestructura de informática en la nube para crear, implementar y administrar aplicaciones y servicios a través de una red mundial de centros de datos administrados por Microsoft.
573 preguntas
0 comentarios No hay comentarios
{count} votos

3 respuestas

Ordenar por: Muy útil
  1. Jonathan Pereira Castillo 17,015 Puntos de reputación Personal externo de Microsoft
    12 nov 2024, 17:38

    ¡Hola Javier GL!

    Bienvenido a Microsoft Q&A.

    Lamento que estés teniendo problemas con tu flujo de trabajo en Azure Logic Apps. El error de tiempo de espera que estás viendo es común cuando se procesan grandes cantidades de datos. Aquí hay algunas sugerencias para manejar este problema: Dividir el JSON en Lotes Más Pequeños:

    • En lugar de procesar los 2000 objetos en un solo flujo de trabajo, divide el JSON en lotes más pequeños. Puedes usar una función de Azure para dividir el JSON y luego procesar cada lote por separado.

    Usar Azure Functions o Durable Functions:

    • Considera usar Azure Functions o Durable Functions para manejar el procesamiento de grandes cantidades de datos. Estas funciones pueden manejar mejor las operaciones largas y pueden dividir el trabajo en tareas más pequeñas y manejables.

    Aumentar el Tiempo de Espera:

    • Si es posible, aumenta el tiempo de espera para la acción de respuesta en tu Logic App. Esto puede dar más tiempo para que el flujo de trabajo complete el procesamiento antes de que se agote el tiempo.

    Optimizar el Flujo de Trabajo:

    • Revisa y optimiza tu flujo de trabajo para asegurarte de que cada paso sea lo más eficiente posible. Por ejemplo, asegúrate de que la acción "Parse JSON" y el bucle "For Each" estén configurados correctamente para manejar grandes volúmenes de datos.

    Usar la Acción de Lote:

    • Azure Logic Apps tiene una acción de "Batch" que puede ayudar a agrupar los elementos del JSON y procesarlos en lotes más pequeños. Esto puede reducir la carga en el flujo de trabajo y evitar tiempos de espera.

    Registrar y Monitorear:

    • Implementa un sistema de registro y monitoreo para identificar exactamente dónde se producen los cuellos de botella. Esto puede ayudarte a ajustar y optimizar el flujo de trabajo de manera más precisa. Aquí tienes un ejemplo de cómo podrías dividir el JSON en lotes usando una Azure Function:
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    var jsonArray = JsonConvert.DeserializeObject<List<JObject>>(requestBody);
    int batchSize = 100; // Tamaño del lote
    var batches = new List<List<JObject>>();
    for (int i = 0; i < jsonArray.Count; i += batchSize)
    {
        batches.Add(jsonArray.Skip(i).Take(batchSize).ToList());
    }
    // Procesar cada lote
    foreach (var batch in batches)
    {
        // Lógica para procesar cada lote
    }
    return new OkObjectResult("Procesamiento completado");
    }
    

    Espero que estos consejos ayuden a resolver el problema. Si necesitas más asistencia, estoy a tu disposición.

    Saludos,

    Jonathan.

    ----------*

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ''. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.

    0 comentarios No hay comentarios

  2. Jonathan Pereira Castillo 17,015 Puntos de reputación Personal externo de Microsoft
    15 nov 2024, 17:45

    Hola Javier GL!,

    El propósito de este mensaje es verificar la información proporcionada. Si tienes más actualizaciones sobre este tema, no dudes en responder en este mismo hilo.

    Respetuosamente,

    Jonathan

    ---------

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ‘Sí’. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones. ¡Gracias por tu colaboración!

    0 comentarios No hay comentarios

  3. Jonathan Pereira Castillo 17,015 Puntos de reputación Personal externo de Microsoft
    6 feb 2025, 18:33

    Buenos día Javier GL!,

    Conforme a la información previamente proporcionada, el objetivo de este mensaje es verificar la misma. Si tienes nuevas actualizaciones relacionadas con este asunto, por favor, siéntete libre de responder en este mismo hilo.

    Atentamente,

    Jonathan

    -----------

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ‘Sí’. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones. ¡Gracias por tu colaboración!

    ------

    0 comentarios No hay comentarios

Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.