Creación, programación y ejecución de tareas y flujos de trabajo periódicos con el desencadenador de periodicidad en Azure Logic AppsCreate, schedule, and run recurring tasks and workflows with the Recurrence trigger in Azure Logic Apps

Para ejecutar con regularidad tareas, procesos o trabajos con una programación específica, puede iniciar el flujo de trabajo de la aplicación lógica con el desencadenador Periodicidad integrado, que se ejecuta de forma nativa en Azure Logic Apps.To regularly run tasks, processes, or jobs on specific schedule, you can start your logic app workflow with the built-in Recurrence trigger, which runs natively in Azure Logic Apps. Puede establecer una fecha y hora, así como una zona horaria para iniciar el flujo de trabajo y una periodicidad para la repetición de ese flujo de trabajo.You can set a date and time as well as a time zone for starting the workflow and a recurrence for repeating that workflow. Si el desencadenador se pierde las periodicidades por alguna razón, por ejemplo, debido a interrupciones o flujos de trabajo deshabilitados, este desencadenador no procesa las periodicidades perdidas, sino que las reinicia en el siguiente intervalo programado.If the trigger misses recurrences for any reason, for example, due to disruptions or disabled workflows, this trigger doesn't process the missed recurrences but restarts recurrences at the next scheduled interval. 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.For more information about the built-in Schedule triggers and actions, see Schedule and run recurring automated, tasks, and workflows with Azure Logic Apps.

A continuación se muestran algunos patrones compatibles con este desencadenador junto con periodicidades más avanzadas y programaciones complejas:Here are some patterns that this trigger supports along with more advanced recurrences and complex schedules:

  • Ejecutar inmediatamente y repetir cada n segundos, minutos, horas, días, semanas o meses.Run immediately and repeat every n number of seconds, minutes, hours, days, weeks, or months.

  • Empezar a una fecha y hora específicas, y después ejecutar y repetir cada n segundos, minutos, horas, días, semanas o meses.Start at a specific date and time, then run and repeat every n number of seconds, minutes, hours, days, weeks, or months.

  • Ejecutar y repetir una o varias veces al día, por ejemplo, a las 8:00 a. m. y a las 5:00 p. m.Run and repeat at one or more times each day, for example, at 8:00 AM and 5:00 PM.

  • Ejecutar y repetir cada semana, pero solo días específicos, como el sábado y domingo.Run and repeat each week, but only for specific days, such as Saturday and Sunday.

  • Ejecutar y repetir cada semana, pero solo días específicos a horas concretas, como de lunes a viernes, a las 8:00 a. m. y a las 5:00 p. m.Run and repeat each week, but only for specific days and times, such as Monday through Friday at 8:00 AM and 5:00 PM.

Para ver las diferencias entre este desencadenador y el desencadenador de ventana deslizante, o para obtener más información sobre la programación de flujos de trabajo periódicos, consulte Programación y ejecución de tareas, procesos y flujos de trabajo automatizados periódicos con Azure Logic Apps.For differences between this trigger and the Sliding Window trigger or for more information about scheduling recurring workflows, see Schedule and run recurring automated tasks, processes, and workflows with Azure Logic Apps.

Sugerencia

Si desea desencadenar la aplicación lógica y ejecutarla solo una vez en el futuro, consulte Ejecución de trabajos una sola vez.If you want to trigger your logic app and run only one time in the future, see Run jobs one time only.

Requisitos previosPrerequisites

Adición del desencadenador PeriodicidadAdd the Recurrence trigger

  1. Inicie sesión en Azure Portal.Sign in to the Azure portal. Crear una aplicación lógica en blanco.Create a blank logic app.

  2. Cuando se abra el Diseñador de aplicaciones lógicas, en el cuadro de búsqueda, especifique recurrence como filtro.After Logic App Designer appears, in the search box, enter recurrence as your filter. En la lista de desencadenadores, seleccione este desencadenador como primer paso en el flujo de trabajo de la aplicación lógica: PeriodicidadFrom the triggers list, select this trigger as the first step in your logic app workflow: Recurrence

    Seleccionar desencadenador "Periodicidad"

  3. Defina el intervalo y la frecuencia de periodicidad.Set the interval and frequency for the recurrence. En este ejemplo, defina estas propiedades para ejecutar el flujo de trabajo todas las semanas.In this example, set these properties to run your workflow every week.

    Establecer el intervalo y la frecuencia

    PropiedadProperty Nombre JSONJSON name ObligatorioRequired TipoType DescripciónDescription
    IntervaloInterval interval Yes EnteroInteger Entero positivo que describe la frecuencia con la que se ejecuta el flujo de trabajo.A positive integer that describes how often the workflow runs based on the frequency. Estos son los intervalos mínimo y máximo:Here are the minimum and maximum intervals:

    - Mes: 1-16 meses- Month: 1-16 months
    - Semana: 1-71 semanas- Week: 1-71 weeks
    - Día: 1-500 días- Day: 1-500 days
    - Hora: 1-12 000 horas- Hour: 1-12,000 hours
    - Minuto: 1-72 000 minutos- Minute: 1-72,000 minutes
    - Segundo: 1-9 999 999 segundos- Second: 1-9,999,999 seconds

    Por ejemplo, si el intervalo es 6 y la frecuencia es "month", la periodicidad es cada 6 meses.For example, if the interval is 6, and the frequency is "Month", then the recurrence is every 6 months.

    FrecuenciaFrequency frequency Yes StringString Unidad de tiempo que se usa para la periodicidad: Segundo, Minuto, Hora, Día, Semana o MesThe unit of time for the recurrence: Second, Minute, Hour, Day, Week, or Month

    Importante

    Si una periodicidad no especifica una fecha y hora de inicio específicas, la primera periodicidad se ejecuta inmediatamente al guardar o implementar la aplicación lógica, independientemente de la configuración de periodicidad del desencadenador.If a recurrence doesn't specify a specific start date and time, the first recurrence runs immediately when you save or deploy the logic app, despite your trigger's recurrence setup. Para evitar este comportamiento, proporcione una fecha y hora de inicio para cuando quiera que se ejecute la primera periodicidad.To avoid this behavior, provide a start date and time for when you want the first recurrence to run.

    Si una periodicidad 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.If a recurrence doesn't specify any other advanced scheduling options such as specific times to run future recurrences, those recurrences are based on the last run time. Como resultado, las horas de inicio de estas periodicidades pueden cambiar debido a factores como la latencia durante las llamadas de almacenamiento.As a result, the start times for those recurrences might drift due to factors such as latency during storage calls. Para asegurarse de que la aplicación lógica no pierde una periodicidad, especialmente cuando la frecuencia se especifica en días o unidades superiores, pruebe con una de estas opciones:To make sure that your logic app doesn't miss a recurrence, especially when the frequency is in days or longer, try these options:

    • Proporcione una fecha y hora de inicio para la periodicidad más las horas específicas en las que se ejecutarán las repeticiones posteriores mediante las propiedades denominadas A estas horas y En estos minutos, que solo están disponibles para las frecuencias Día y Semana.Provide a start date and time for the recurrence plus the specific times when to run subsequent recurrences by using the properties named At these hours and At these minutes, which are available only for the Day and Week frequencies.

    • Use el desencadenador de ventana deslizante, en lugar del de periodicidad.Use the Sliding Window trigger, rather than the Recurrence trigger.

  4. Para definir opciones de programación avanzadas, abra la lista Agregar nuevo parámetro.To set advanced scheduling options, open the Add new parameter list. Las opciones que seleccione aparecerán en el desencadenador después de la selección.Any options that you select appear on the trigger after selection.

    Opciones avanzadas de programación

    PropiedadProperty Nombre JSONJSON name ObligatorioRequired TipoType DescripciónDescription
    Zona horariaTime zone timeZone NoNo StringString Solo se aplica cuando se especifica una hora de inicio porque este desencadenador no acepta diferencia horaria con UTC.Applies only when you specify a start time because this trigger doesn't accept UTC offset. Seleccione la zona horaria que desea aplicar.Select the time zone that you want to apply.
    Hora de inicioStart time startTime NoNo StringString 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:Provide a start date and time, which has a maximum of 49 years in the future and must follow the ISO 8601 date time specification in UTC date time format, but without a UTC offset:

    AAAA-MM-DDThh:mm:ss si selecciona una zona horariaYYYY-MM-DDThh:mm:ss if you select a time zone

    O bien-or-

    AAAA-MM-DDThh:mm:ssZ si no selecciona una zona horariaYYYY-MM-DDThh:mm:ssZ if you don't select a time zone

    Por ejemplo, si desea la fecha del 18 de septiembre de 2020 a las 14:00, especifique entonces "2020-09-18T14:00:00" y especifique una zona horaria como "Hora estándar del Pacífico".So for example, if you want September 18, 2020 at 2:00 PM, then specify "2020-09-18T14:00:00" and select a time zone such as Pacific Standard Time. O bien, especifique "2020-09-18T14:00:00Z" sin una zona horaria.Or, specify "2020-09-18T14:00:00Z" without a time zone.

    Importante: Si no se selecciona una zona horaria, debe agregar la letra "Z" al final sin espacios.Important: If you don't select a time zone, you must add the letter "Z" at the end without any spaces. Esta "Z" se refiere al equivalente de hora náutica.This "Z" refers to the equivalent nautical time. Si selecciona un valor de zona horaria, no es necesario agregar una "Z" al final del valor de Hora de inicio.If you select a time zone value, you don't need to add a "Z" to the end of your Start time value. Si lo hace, Logic Apps omite el valor de zona horaria porque "Z" implica un formato de hora UTC.If you do, Logic Apps ignores the time zone value because the "Z" signifies a UTC time format.

    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.For simple schedules, the start time is the first occurrence, while for complex schedules, the trigger doesn't fire any sooner than the start time. ¿De qué formas puedo usar la fecha y hora de inicio?What are the ways that I can use the start date and time?

    En estos díasOn these days weekDays NoNo Cadena o matriz de cadenasString or string array Si selecciona "Semana", puede seleccionar uno o más días que desee ejecutar el flujo de trabajo: Lunes, Martes, Miércoles, Jueves, Viernes, Sábado y DomingoIf you select "Week", you can select one or more days when you want to run the workflow: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday
    A estas horasAt these hours hours NoNo Entero o matriz de enterosInteger or integer array Si selecciona "Day" o "Week", puede especificar uno o varios enteros de 0 a 23 como las horas del día en las que desea ejecutar el flujo de trabajo.If you select "Day" or "Week", you can select one or more integers from 0 to 23 as the hours of the day for when you want to run the workflow.

    Por ejemplo, si especifica "10", "12" y "14", obtendrá las 10:00, las 12:00 y las 14:00 para las horas del día, pero los minutos del día se calcularán en función del momento en el que se inicie la periodicidad.For example, if you specify "10", "12" and "14", you get 10 AM, 12 PM, and 2 PM for the hours of the day, but the minutes of the day are calculated based on when the recurrence starts. 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.To set specific minutes of the day, for example, 10:00 AM, 12:00 PM, and 2:00 PM, specify those values by using the property named At these minutes.

    En estos minutosAt these minutes minutes NoNo Entero o matriz de enterosInteger or integer array Si selecciona "Day" o "Week", puede seleccionar uno o varios enteros de 0 a 59 como los minutos de la hora en los que desea ejecutar el flujo de trabajo.If you select "Day" or "Week", you can select one or more integers from 0 to 59 as the minutes of the hour when you want to run the workflow.

    Por ejemplo, puede especificar "30" como la marca de minuto y, utilizando el ejemplo anterior para las horas del día, obtendrá 10:30 a. m., 12:30 p. m. y las 2:30 p. m.For example, you can specify "30" as the minute mark and using the previous example for hours of the day, you get 10:30 AM, 12:30 PM, and 2:30 PM.

    Nota: A veces, la marca de tiempo de la ejecución desencadenada puede variar hasta 1 minuto con respecto a la hora programada.Note: Sometimes, the timestamp for the triggered run might vary up to 1 minute from the scheduled time. 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.If you need to pass the timestamp exactly as scheduled to subsequent actions, you can use template expressions to change the timestamp accordingly. Para obtener más información, vea Funciones de fecha y hora para expresiones.For more information, see Date and time functions for expressions.

    Por ejemplo, supongamos que hoy es viernes, 4 de septiembre de 2020.For example, suppose that today is Friday, September 4, 2020. El siguiente desencadenador de periodicidad no se inicia antes de la fecha y hora de inicio, establecida el viernes, 18 de septiembre de 2020, a las 8:00 a. m. PST.The following Recurrence trigger doesn't fire any sooner than the start date and time, which is Friday, September 18, 2020 at 8:00 AM PST. 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.However, the recurrence schedule is set for 10:30 AM, 12:30 PM, and 2:30 PM on Mondays only. Por tanto, el desencadenador inicia y crea una instancia de flujo de trabajo de aplicación lógica por primera vez el lunes a las 10:30 a. m.So the first time that the trigger fires and creates a logic app workflow instance is on Monday at 10:30 AM. Para más información sobre cómo funcionan las horas de inicio, vea estos ejemplos de hora de inicio.To learn more about how start times work, see these start time examples.

    Las futuras ejecuciones se realizan a las 12:30 p. m. y a las 2:30 p. m. ese mismo día.Future runs happen at 12:30 PM and 2:30 PM on the same day. Cada periodicidad crea su propia instancia de flujo de trabajo.Each recurrence creates their own workflow instance. Después de eso, toda la programación se repite el próximo lunes.After that, the entire schedule repeats all over again next Monday. ¿Qué otros ejemplos se hay?What are some other example occurrences?

    Ejemplo de programación avanzada

    Nota

    El desencadenador muestra una vista previa de la periodicidad especificada solo si selecciona la frecuencia "Day" o "Week".The trigger shows a preview for your specified recurrence only when you select "Day" or "Week" as the frequency.

  5. Ahora cree el flujo de trabajo restante con otras acciones.Now build your remaining workflow with other actions. Para ver más acciones que se puedan agregar, consulte Conectores para Azure Logic Apps.For more actions that you can add, see Connectors for Azure Logic Apps.

Definición de flujo de trabajo: periodicidadWorkflow definition - Recurrence

En la definición de flujo de trabajo subyacente de la aplicación lógica, que usa JSON, podrá ver la definición del desencadenador de periodicidad con las opciones que eligió.In your logic app's underlying workflow definition, which uses JSON, you can view the Recurrence trigger definition with the options that you chose. Para ver esta definición, en la barra de herramientas del diseñador, elija Vista Código.To view this definition, on the designer toolbar, choose Code view. Para volver al diseñador, elija la barra de herramientas del diseñador, Diseñador.To return to the designer, choose on the designer toolbar, Designer.

En este ejemplo se muestra el aspecto que podrá tener una definición de desencadenador de periodicidad en una definición de flujo de trabajo subyacente:This example shows how a Recurrence trigger definition might look in an underlying workflow definition:

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

Cambio de periodicidad del desencadenador entre el horario de verano y la hora estándarTrigger recurrence shift between daylight saving time and standard time

Los desencadenadores periódicos integrados respetan la programación establecida, incluida cualquier zona horaria que especifique.Recurring built-in triggers honor the schedule that you set, including any time zone that you specify. Si no selecciona una zona horaria, el horario de verano (DST) puede afectar al momento en que se ejecutan los desencadenadores, por ejemplo, al adelantar una hora la hora de inicio cuando se inicia el horario de verano y atrasarla una hora cuando este finaliza.If you don't select a time zone, daylight saving time (DST) might affect when triggers run, for example, shifting the start time one hour forward when DST starts and one hour backward when DST ends.

Para evitar este cambio para que la aplicación lógica se ejecute a la hora de inicio especificada, asegúrese de seleccionar una zona horaria.To avoid this shift so that your logic app runs at your specified start time, make sure that you select a time zone. De este modo, la hora UTC de la aplicación lógica también se cambia para contrarrestar el cambio horario estacional.That way, the UTC time for your logic app also shifts to counter the seasonal time change. Sin embargo, algunas ventanas de tiempo pueden causar problemas cuando se cambia la hora.However, some time windows might cause problems when the time shifts. Para obtener más información y ejemplos, consulte Periodicidad de horario de verano y hora estándar.For more information and examples, see Recurrence for daylight saving time and standard time.

Pasos siguientesNext steps