Compartir a través de


Programación y ejecución de flujos de trabajo periódicos con el desencadenador de periodicidad de Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

Para iniciar y ejecutar el flujo de trabajo según una programación, puede usar el desencadenador de recurrencia genérico como primer paso. Puede establecer una fecha, hora y zona horaria para iniciar el flujo de trabajo y una periodicidad para la repetición de ese flujo de trabajo. La siguiente lista muestra algunos patrones compatibles con este desencadenador junto con periodicidades más avanzadas y programaciones complejas:

  • Ejecute en una fecha y hora específicas y, a continuación, repita cada n número de segundos, minutos, horas, días, semanas o meses.

  • Ejecutar inmediatamente y repetir cada n segundos, minutos, horas, días, semanas o meses.

  • Ejecutar de inmediato y repetir cada día a una o varias horas concretas, como 8:00 y 17:00.

  • Ejecutar de inmediato y repetir cada semana en días concretos, como el sábado y el domingo.

  • Ejecutar de inmediato y repetir cada semana en días y a horas concretos, como de lunes a viernes a las 8:00 y a las 17:00.

Note

Las opciones de programación avanzadas, como En estas horas y En estos días, están disponibles y solo funcionan con desencadenadores de sondeo integrados, como los desencadenadores Periodicidad y Ventana deslizante, que se ejecutan directamente con el entorno de ejecución de Azure Logic Apps. En el caso de los conectores administrados por Microsoft, hospedados y ejecutados en Azure, los desencadenadores de sondeo calculan la siguiente periodicidad usando solo los valores intervalo y frecuencia , no las opciones de programación avanzadas.

El desencadenador de periodicidad no está asociado a ningún servicio específico, por lo que se puede usar prácticamente con cualquier flujo de trabajo, como flujos de trabajo de aplicación lógica de consumo y flujos de trabajo con estado de aplicación lógica estándar. Este desencadenador no está disponible actualmente para flujos de trabajo sin estado de aplicación lógica estándar.

El desencadenador de periodicidad forma parte del conector de programación integrado y se ejecuta de forma nativa en el runtime de Azure Logic Apps. Para obtener más información sobre los desencadenadores y las acciones de programación integrados, consulte Programar y ejecutar tareas y flujos de trabajo automatizados y periódicos con Azure Logic Apps.

Prerequisites

Adición del desencadenador Periodicidad

En función de si el flujo de trabajo es Consumo o Estándar, siga los pasos correspondientes:

  1. En Azure Portal, abra el recurso de la aplicación lógica y el flujo de trabajo en blanco.

  2. Siga estos pasos generales para agregar el desencadenador integrado de Programación denominado Periodicidad.

  3. Defina el intervalo y la frecuencia de periodicidad. En este ejemplo, establezca estas propiedades para ejecutar el flujo de trabajo todas las semanas, por ejemplo:

    Captura de pantalla del diseñador de flujos de trabajo de consumo con el intervalo y la frecuencia del desencadenador Periodicidad.

    Property Nombre JSON Required Type Description
    Interval interval Yes Integer Entero positivo que describe la frecuencia con la que se ejecuta el flujo de trabajo. Estos son los intervalos mínimo y máximo:

    - Month: 1-16 meses
    - Week: 1-71 semanas
    - Day: 1-500 días
    - Hour: 1-12 000 horas
    - Minute: 1-72 000 minutos
    - Second: 1-9 999 999 segundos

    Por ejemplo, si el intervalo es 6 y la frecuencia es "month", la periodicidad es cada 6 meses.
    Frequency frequency Yes String La unidad de tiempo para la periodicidad: segundo, minuto, hora, día, semana o mes

    Importante: Si selecciona la frecuencia día, semana o mes , y especifica una fecha y hora de inicio futuras, asegúrese de configurar la periodicidad con antelación. De lo contrario, el flujo de trabajo podría omitir la primera periodicidad.

    - Día: configure la periodicidad diaria con al menos 24 horas de antelación.

    - Semana: configure la periodicidad semanal al menos 7 días de antelación.

    - Mes: configure la periodicidad mensual al menos un mes con antelación.
    Zona horaria timeZone No String Solo se aplica cuando se especifica una hora de inicio porque este desencadenador no acepta un desplazamiento UTC. Seleccione la zona horaria que desea aplicar. Para obtener más información, vea Zona horaria predeterminada.
    Hora de comienzo startTime No String Proporciona una fecha y hora de inicio, que tiene un máximo de 49 años en el futuro y debe seguir la especificación de fecha y hora ISO 8601 en formato de fecha y hora UTC, pero sin una diferencia horaria con UTC:

    AAAA-MM-DDThh:mm:ss si selecciona una zona horaria

    -or-

    AAAA-MM-DDThh:mm:ssZ si no selecciona una zona horaria

    Por ejemplo, si desea la fecha del 18 de septiembre de 2024 a las 14:00, especifique entonces "2024-09-18T8:00:00" y especifique una zona horaria como "Hora estándar del Pacífico". O bien, especifique "2024-09-18T8:00:00Z" sin una zona horaria.

    Importante: Si no selecciona una zona horaria, debe agregar la letra "Z" al final sin espacios. Esta "Z" significa un formato de hora UTC con diferencia horaria con UTC. Si selecciona un valor de zona horaria, no es necesario agregar una "Z" al final del valor de hora de inicio . Si lo hace, Azure Logic Apps omite el valor de zona horaria porque "Z" implica un formato de hora UTC.

    Para las programaciones simples, la hora de inicio es la primera aparición, mientras que para programaciones complejas, el desencadenador no se activa antes de la hora de inicio. ¿De qué formas puedo usar la fecha y hora de inicio?

    Las siguientes propiedades están disponibles, en función de si selecciona Semana o Día:

    Property Nombre JSON Required Type Description
    En estos días weekDays No Cadena o matriz de cadenas Si selecciona Semana, puede seleccionar uno o varios días cuando quiera ejecutar el flujo de trabajo: lunes, martes, miércoles, jueves, viernes, sábado y domingo.
    A estas horas hours No Entero o matriz de enteros Si selecciona Día o Semana, puede seleccionar uno o varios enteros de 0 a 23 como horas del día para cuando quiera ejecutar el flujo de trabajo. Por ejemplo, si especifica 10, 12 y 14, obtendrá 10 a. m., 12 p. m. y 2 p. m. para las horas del día.

    Nota: De forma predeterminada, los minutos del día se calculan en función de cuándo se inicia la periodicidad. Para establecer minutos específicos del día (por ejemplo, las 10:00, las 12:00 y las 14:00), especifique esos valores mediante la propiedad denominada En estos minutos.
    En estos minutos minutes No Entero o matriz de enteros Si selecciona Día o Semana, puede seleccionar uno o varios enteros de 0 a 59 como minutos de la hora cuando quiera ejecutar el flujo de trabajo.

    Por ejemplo, puede especificar 30 como marca de minuto y usar el ejemplo anterior para horas del día, obtendrá 10:30 AM, 12:30 PM y 2:30 PM.

    Nota: A veces, la marca de tiempo de la ejecución desencadenada puede variar hasta 1 minuto a partir de la hora programada. Si tiene que pasar la marca de tiempo exactamente como está programada a las acciones posteriores, puede usar expresiones de plantilla para cambiar la marca de tiempo en consecuencia. Para obtener más información, vea Funciones de fecha y hora para expresiones.
  4. Revise las consideraciones siguientes al usar el desencadenador Recurrencia:

    • A menos que especifique una fecha y hora de inicio específicas, la primera periodicidad se ejecuta inmediatamente al guardar el flujo de trabajo o implementar el recurso de aplicación lógica, a pesar de la configuración de periodicidad del desencadenador. Para evitar este comportamiento, proporcione una fecha y hora de inicio para cuando quiera que se ejecute la primera periodicidad.

    • Si no especifica ninguna otra opción de programación avanzada, como horas específicas para ejecutar futuras repeticiones, esas repeticiones se basan en la hora de la última ejecución. Como resultado, las horas de inicio de estas periodicidades pueden cambiar debido a factores como la latencia durante las llamadas de almacenamiento.

    • Para asegurarse de que el flujo de trabajo no pierda una repetición, especialmente si la frecuencia se especifica en días o unidades superiores, pruebe las siguientes opciones:

      • Proporcione una fecha y hora de inicio para la periodicidad y las horas específicas para ejecutar las repeticiones posteriores. Puede usar las propiedades A estas horas y En estos minutos, que solo están disponibles en las frecuencias Día y Semana.

      • En los flujos de trabajo de aplicación lógica de consumo, use el desencadenador de ventana deslizante en lugar del desencadenador de periodicidad.

    • Si implementa un flujo de trabajo de consumo deshabilitado que tiene un desencadenador de periodicidad mediante una plantilla de ARM, el desencadenador se activa al instante al habilitar el flujo de trabajo a menos que establezca el parámetro de hora de inicio antes de la implementación.

    Por ejemplo, supongamos que hoy es miércoles, 4 de septiembre de 2024. El siguiente desencadenador de periodicidad no se inicia antes de la fecha y hora de inicio especificadas, que es el miércoles, 18 de septiembre de 2024, a las 8:00, hora del Pacífico. Sin embargo, la programación de periodicidad está establecida para las 10:30 a. m., las 12:30 p. m. y las 2:30 p. m., solo los lunes. La primera vez que el desencadenador se inicia y crea una instancia de flujo de trabajo es el lunes a las 10:30. Para más información sobre cómo funcionan las horas de inicio, vea estos ejemplos de hora de inicio.

    Las futuras ejecuciones se realizan a las 12:30 p. m. y a las 2:30 p. m. ese mismo día. Cada periodicidad crea su propia instancia de flujo de trabajo. Después de eso, toda la programación se repite el próximo lunes. ¿Qué otros ejemplos hay?

    Recorte de pantalla que muestra el flujo de trabajo de consumo y el desencadenador Periodicidad con un ejemplo de programación avanzada.

    Note

    El desencadenador muestra una vista previa de la periodicidad especificada solo cuando selecciona Día o Semana como frecuencia.

  5. Ahora siga compilando el flujo de trabajo con otras acciones.

Definición de flujo de trabajo: periodicidad

Puede ver cómo aparece la definición del desencadenador de periodicidad con las opciones elegidas si revisa la definición JSON subyacente del flujo de trabajo en las aplicaciones lógicas de consumo y las aplicaciones lógicas estándar (solo con estado).

En función de si la aplicación lógica es de consumo o estándar, elija una de las siguientes opciones:

  • Consumo: En la barra de herramientas del diseñador, seleccione Vista de código. Para volver al diseñador, en la barra de herramientas del editor de vistas de código, seleccione Diseñador.

  • Estándar: en el menú flujo de trabajo, seleccione Vista Código. Para volver al diseñador, en el menú flujo de trabajo, seleccione Diseñador.

En el siguiente ejemplo se muestra cómo podría aparecer una definición de un desencadenador de recurrencia en la definición JSON subyacente del flujo de trabajo:

"triggers": {
   "Recurrence": {
      "type": "Recurrence",
      "recurrence": {
         "frequency": "Week",
         "interval": 1,
         "schedule": {
            "hours": [
               10,
               12,
               14
            ],
            "minutes": [
               30
            ],
            "weekDays": [
               "Monday"
            ]
         },
         "startTime": "2024-09-18T8:00:00Z",
         "timeZone": "Pacific Standard Time"
      }
   }
}

Note

En la definición del desencadenador Periodicidad, la propiedad evaluatedRecurrence aparece junto con la propiedad recurrence cuando aparece cualquier expresión o referencia de parámetro en los criterios de periodicidad. Esta propiedad evaluatedRecurrence representa los valores evaluados de la referencia de expresión o parámetro. Si los criterios de periodicidad no especifican ninguna expresión o referencia a parámetros, las propiedades evaluatedRecurrence y recurrence son las mismas.

En el ejemplo siguiente se muestra cómo actualizar la definición del desencadenador para que el desencadenador se ejecute solo una vez el último día de cada mes:

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

Ejecutar una vez el último día del mes

Para esta tarea, debe editar el desencadenador Recurrencia en la definición JSON subyacente del flujo de trabajo utilizando la vista de código, no el diseñador, siguiendo el ejemplo siguiente:

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

Desencadenamiento de desplazamientos y desfases en la periodicidad (horario de verano)

Al programar trabajos, Azure Logic Apps pone en cola el mensaje que será procesado y especifica cuándo estará disponible. Esto se determina en función de la hora UTC de la ejecución del último trabajo y la hora UTC programada para la ejecución del siguiente. Si especifica una hora de inicio con una periodicidad personalizada, asegúrese de seleccionar la zona horaria correspondiente para que el flujo de trabajo de la aplicación lógica se ejecute a la hora especificada. De este modo, la hora UTC de la aplicación lógica también se cambia para contrarrestar el cambio horario estacional. Los desencadenadores periódicos respetarán la programación que establezca. Esto incluye cualquier zona horaria que especifique.

Tenga en cuenta que, si no selecciona una zona horaria, los eventos de horario de verano (DST) podrían alterar la hora a la que se ejecutan los desencadenadores. Es decir, la hora de inicio se retrasará una hora cuando se use el horario de verano y se adelantará una hora cuando este deje de usarse. Sin embargo, algunas ventanas de tiempo pueden causar problemas cuando se cambia la hora. Para obtener más información y ejemplos, consulte Periodicidad de horario de verano y hora estándar.