Agendar e executar fluxos de trabalho recorrentes com o gatilho de recorrência nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Standard)

Para iniciar e executar seu fluxo de trabalho em um agendamento, você pode usar o gatilho de Recorrência genérico como a primeira etapa. Você pode definir data, hora e fuso horário para o início do fluxo de trabalho e uma recorrência para repeti-lo. A lista a seguir inclui alguns padrões para os quais esse gatilho dá suporte, com recorrências mais avançadas e agendas complexas:

  • Execute em uma data e hora específicas e repita a cada n segundos, minutos, horas, dias, semanas ou meses.

  • Execute imediatamente e repita a cada n segundos, minutos, horas, dias semanas ou meses.

  • Executar imediatamente e repetir diariamente em um ou mais horários específicos, como 8h e 17h.

  • Executar imediatamente e repetir a cada semana em dias específicos, como sábado e domingo.

  • Executar imediatamente e repetir a cada semana em determinados dias e horas, como de segunda a sexta-feira, às 8h e às 17h.

Observação

Para iniciar e executar seu fluxo de trabalho apenas uma vez no futuro, use o modelo de fluxo de trabalho chamado Agendador: executar trabalhos apenas uma vez. Esse modelo usa o gatilho de Solicitação e a ação HTTP, em vez do gatilho de Recorrência, que não dá suporte a esse padrão de recorrência. Para obter mais informações, consulte Executar trabalhos somente uma vez.

O gatilho de Recorrência não está associado a um serviço específico, portanto, você pode usar o gatilho com quase qualquer fluxo de trabalho, como Fluxos de trabalho do aplicativo lógico de consumo e Fluxos de trabalho com estado do aplicativo lógico Standard. No momento, esse gatilho não está disponível para Fluxos de trabalho sem estado do aplicativo lógico Standard.

O gatilho de Recorrência faz parte do conector de Agendamento interno e é executado nativamente no runtime dos Aplicativos Lógicos do Azure. Veja mais informações sobre as ações e os gatilhos internos de agendamento em Agendar e executar tarefas e fluxos de trabalho automatizados e recorrentes com os Aplicativos Lógicos do Azure.

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure.

  • Um recurso de aplicativo lógico Consumo ou Padrão com um fluxo de trabalho em branco.

    Observação

    Se você criou um fluxo de trabalho do aplicativo lógico Standard, crie um fluxo de trabalho com estado. No momento, o gatilho de Recorrência não está disponível para fluxos de trabalho sem estado.

Adicionar gatilho Recorrência

Com base em se o fluxo de trabalho é Consumo ou Padrão, siga as etapas correspondentes:

  1. No portal do Azure, abra o recurso do aplicativo lógico e o fluxo de trabalho em branco.

  2. Siga estas etapas gerais para adicionar o gatilho interno Schedule chamado Recorrência.

  3. Defina o intervalo e a frequência da recorrência. Neste exemplo, defina essas propriedades para que executem o fluxo de trabalho toda semana, por exemplo:

    Screenshot for Consumption workflow designer with Recurrence trigger interval and frequency.

    Propriedade Nome JSON Obrigatório Tipo Descrição
    Intervalo interval Sim Inteiro Um inteiro positivo que descreve a frequência na qual o fluxo de trabalho é executado com base na frequência. Aqui estão os intervalos mínimo e máximo:

    - Mês: 1-16 meses
    - Semana: 1-71 semanas
    - Dia: 1-500 dias
    - Hora: 1-12.000 horas
    - Minuto: 1-72.000 minutos
    – Segundo: 1 a 9.999.999 segundos

    Por exemplo, se o intervalo for 6 e a frequência for "Mês", a recorrência será a cada 6 meses.
    Frequência frequency Sim String A unidade de tempo para a recorrência: Segundo, Minuto, Hora, Dia, Semana ou Mês

    Importante: Se você selecionar a frequência Dia, Semana ou Mês e especificar uma data e hora de início futuras, certifique-se de configurar a recorrência com antecedência. Caso contrário, o fluxo de trabalho pode ignorar a primeira recorrência.

    - Dia: configure a recorrência diária com pelo menos 24 horas de antecedência.

    - Semana: configure a recorrência semanal com pelo menos sete dias de antecedência.

    - Mês: configure a recorrência mensal com pelo menos um mês de antecedência.
  4. Analise as seguintes considerações ao usar o gatilho de recorrência :

    • Se você não especificar uma data e hora de início específicas, a primeira recorrência será executada imediatamente quando você salvar o fluxo de trabalho ou implantar o recurso de aplicativo lógico, apesar da configuração de recorrência do gatilho. Para evitar esse comportamento, forneça a data e hora de início para quando você deseja que a primeira recorrência seja executada.

    • Se você não especificar outras opções avançadas de agendamento, como horários específicos para executar recorrências futuras, essas recorrências serão baseadas no último tempo de execução. Como resultado, os horários de início dessas recorrências podem variar devido a fatores como latência durante as chamadas de armazenamento.

    • Para garantir que seu fluxo de trabalho não perca uma recorrência, especialmente quando a frequência estiver em dias ou mais, tente as seguintes opções:

      • Forneça uma data e hora de início para a recorrência e os horários específicos para executar recorrências subsequentes. Você pode utilizar as propriedades denominadas Nestas horas e Nestes minutos, que estão disponíveis apenas para as frequências Dia e Semana.

      • Para fluxos de trabalho do aplicativo lógico de Consumo, use o gatilho de janela deslizante, em vez do gatilho de recorrência.

    • Se você implantar um fluxo de trabalho de Consumo desabilitado que tenha um gatilho de Recorrência usando um modelo ARM, o gatilho será acionado instantaneamente quando você habilitar o fluxo de trabalho, a menos que você defina o parâmetro Hora de início antes da implantação.

  5. Para definir opções avançadas de agendamento, abra a lista Adicionar novo parâmetro. As opções que você selecionar aparecerão no gatilho após a seleção.

    Propriedade Nome JSON Obrigatório Tipo Descrição
    Fuso horário timeZone Não String Aplica-se somente quando você especifica uma hora de início, porque o gatilho não aceita diferença UTC. Selecione o fuso horário que você deseja aplicar.
    Hora de início startTime Não String Forneça uma data e hora de início, que tem um máximo de 49 anos no futuro e deve seguir a especificação de data e hora ISO 8601 no formato de data e hora UTC, mas sem um deslocamento UTC:

    YYYY-MM-DDThh:mm:ss se você selecionar um fuso horário

    -ou-

    YYYY-MM-DDThh:mm:ssZ se você não selecionar um fuso horário

    Por exemplo, se você quiser 18 de setembro de 2020 às 14h, especifique "2020-09-18T14:00:00" e escolha um fuso horário, como Horário Padrão do Pacífico. Ou, especifique "2020-09-18T14:00:00Z" sem um fuso horário.

    Importante: se você não escolher um fuso horário, será necessário adicionar a letra "Z" no final sem espaços. Essa letra "Z" refere-se ao equivalente em hora náutica. Se você escolher um valor de fuso horário, não precisará adicionar um "Z" ao final do valor da Hora de início. Se você fizer isso, os Aplicativos Lógicos ignorarão o valor do fuso horário porque "Z" significa um formato de hora UTC.

    Para agendamentos simples, a hora de início é a primeira ocorrência, enquanto que, para agendamentos complexos, o gatilho não é disparado antes da hora de início. Quais são as maneiras que posso usar a data e hora de início?
    Nestes dias weekDays Não Cadeia de caracteres ou matriz de cadeia de caracteres Se você selecionar "Semana", poderá selecionar um ou mais dias nos quais deseja executar o fluxo de trabalho: segunda-feira, terça-feira, quarta-feira, quinta-feira, Sexta-feira, sábado e domingo
    A estas horas hours Não Inteiro ou matriz de inteiros Se você escolher "Dia" ou "Semana", poderá escolher um ou mais números inteiros, de 0 a 23, como as horas do dia para as quais você deseja executar o fluxo de trabalho. Por exemplo, se você especificar "10", "12" e "14", receberá 10h, 12h e 14h para as horas do dia.

    Nota: Por padrão, os minutos do dia são calculados com base em quando a recorrência começa. Para definir minutos específicos do dia, por exemplo, 10h, 12h e 14h, especifique esses valores usando a propriedade chamada Nesses minutos.
    A estes minutos minutes Não Inteiro ou matriz de inteiros Se você selecionar "Dia" ou "Semana", poderá selecionar um ou mais números inteiros, de 0 a 59, como os minutos da hora em que você deseja executar o fluxo de trabalho.

    Por exemplo, você pode especificar "30" como a marca de minutos e, usando o exemplo anterior como as horas do dia, você obtém 10h30, 12h30 e 14h30.

    Observação: às vezes, o carimbo de data/hora para a executar pode variar até 1 minuto a partir da hora agendada. Se você precisa passar o carimbo de data/hora exatamente como agendado para as ações subsequentes, use expressões de modelo para alterá-lo de acordo. Para obter mais informações, confira Funções de data para expressões.

    Screenshot for Consumption workflow designer and Recurrence trigger with advanced scheduling options.

    Por exemplo, digamos que hoje é sexta-feira, 4 de setembro de 2020. O seguinte gatilho de Recorrência não será disparado antes da data e hora de início especificadas, que é sexta-feira, 18 de setembro de 2020 às 8h Hora do Pacífico. No entanto, o agendamento da recorrência está definido para 10h30, 12h30 e 14h30, somente às segundas-feiras. A primeira vez que o gatilho será acionado e criará uma instância de fluxo de trabalho será na segunda-feira às 10h30. Para saber mais sobre como as horas de início funcionam, consulte estes exemplos de hora de início.

    As execuções futuras acontecerão às 12h30 e às 14h30 no mesmo dia. Cada recorrência cria sua própria instância de fluxo de trabalho. Depois disso, todo o agendamento se repete novamente na próxima segunda-feira. Quais são outras ocorrências de exemplo?

    Screenshot showing Consumption workflow and Recurrence trigger with advanced scheduling example.

    Observação

    O gatilho mostra uma visualização da recorrência especificada somente quando você seleciona Dia ou Semana como a frequência.

  6. Agora, continue compilando seu fluxo de trabalho com outras ações.

Definição de fluxo de trabalho – Recorrência

Você pode exibir como a Definição do gatilho de recorrência aparece com suas opções escolhidas examinando a definição de JSON subjacente do seu fluxo de trabalho em aplicativos lógicos de Consumo e Standard (somente com estado).

Escolha uma das seguintes opções dependendo se o aplicativo lógico é de Consumo ou Standard:

  • Consumo: na barra de ferramentas do designer, selecione Modo de exibição de código. Para retornar ao designer, na barra de ferramentas de exibição de código, selecione Designer.

  • Standard: no menu do fluxo de trabalho, selecione Exibição de código. Para retornar ao designer, no menu do fluxo de trabalho, selecione Designer.

O exemplo a seguir mostra como uma definição de gatilho de Recorrência pode aparecer na definição de JSON subjacente do fluxo de trabalho:

"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"
      }
   }
}

Observação

Na definição do gatilho de Recorrência, a propriedade evaluatedRecurrence aparece junto com a propriedade recurrence quando qualquer referência de expressão ou parâmetro aparece nos critérios de recorrência. Essa propriedade evaluatedRecurrence representa os valores avaliados da referência de expressão ou parâmetro. Se os critérios de recorrência não especificarem nenhuma expressão ou referência de parâmetro, as propriedades evaluatedRecurrence e recurrence serão as mesmas.

O seguinte exemplo mostra como atualizar a definição de gatilho para que o gatilho seja executado apenas uma vez no último dia de cada mês:

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

Gatilho de deslocamento e desvio de recorrência (horário de verão)

Ao agendar trabalhos, os Aplicativos Lógicos do Azure colocam a mensagem para processamento na fila e especificam quando ela ficará disponível com base no horário UTC em que o último trabalho foi executado e no horário UTC em que o trabalho seguinte está agendado para ser executado. Se você especificar uma hora de início com sua recorrência, certifique-se de selecionar um fuso horário para que o fluxo de trabalho do aplicativo lógico seja executado na hora de início especificada. Dessa forma, o horário UTC do aplicativo lógico também mudará para compensar a mudança de horário sazonal. Os gatilhos de recorrência seguem o agendamento definido, incluindo o fuso horário especificado.

Caso contrário, se você não selecionar um fuso horário, os eventos de horário de verão poderão ser afetados quando os gatilhos forem executados. Por exemplo, a hora de início mudará uma hora para frente quando o horário de verão começar e uma hora para trás quando ele terminar. No entanto, algumas janelas de tempo podem causar problemas quando o horário mudar. Para obter mais informações e exemplos, confira Recorrência para horário de verão e horário padrão.

Próximas etapas