Partilhar via


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 + Padrão)

Para iniciar e executar seu fluxo de trabalho em uma agenda, você pode usar o gatilho genérico de Recorrência como a primeira etapa. Você pode definir uma data, hora e fuso horário para iniciar o fluxo de trabalho e uma recorrência para repeti-lo. A lista a seguir inclui alguns padrões que esse gatilho suporta, juntamente com recorrências mais avançadas e agendamentos complexos:

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

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

  • Execute imediatamente e repita diariamente em um ou mais horários específicos, como 8:00 e 17:00.

  • Corra imediatamente e repita semanalmente em dias específicos, como sábado e domingo.

  • Execute imediatamente e repita semanalmente em dias e horários específicos, como de segunda a sexta-feira, às 8h00 e 17h00.

Nota

As opções avançadas de agendamento, como Nessas horas e Nesses dias, estão disponíveis e funcionam apenas com gatilhos de sondagem internos, como os gatilhos Recorrência e Janela Deslizante , que são executados diretamente com o tempo de execução dos Aplicativos Lógicos do Azure. Para conectores que são gerenciados, hospedados e executados pela Microsoft no Azure, os gatilhos de sondagem calculam a próxima recorrência usando apenas os valores Intervalo e Frequência , não as opções avançadas de agendamento.

O gatilho de Recorrência não está associado a nenhum serviço específico, portanto, você pode usá-lo com praticamente qualquer fluxo de trabalho, como fluxos de trabalho de aplicativo lógico de consumo e fluxos de trabalho com estado de aplicativo lógico padrão. Esse gatilho não está disponível no momento para fluxos de trabalho sem monitoração de estado do aplicativo lógico padrão.

O gatilho de Recorrência faz parte do conector de Agenda interno e é executado nativamente no tempo de execução dos Aplicativos Lógicos do Azure. Para obter mais informações sobre os gatilhos e ações internos do Agendamento, consulte Agendar e executar tarefas automatizadas, tarefas e fluxos de trabalho recorrentes com os Aplicativos Lógicos do Azure.

Pré-requisitos

  • Uma conta e subscrição do Azure. Se não tiver uma subscrição, inscreva-se numa conta do Azure gratuita.

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

    Nota

    Se você criou um fluxo de trabalho de aplicativo lógico padrão, certifique-se de criar um fluxo de trabalho com monitoração de estado. O gatilho de Recorrência não está disponível no momento para fluxos de trabalho sem monitoração de estado.

Adicionar o gatilho de recorrência

Com base no facto de o seu fluxo de trabalho ser Consumo ou Padrão, siga os passos 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 periodicidade. Neste exemplo, defina estas propriedades para executar seu fluxo de trabalho todas as semanas, por exemplo:

    Captura de tela para o designer de fluxo de trabalho de consumo com intervalo de gatilho e frequência de recorrência.

    Property Nome JSON Necessário Type Description
    Intervalo interval Sim Número inteiro Um inteiro positivo que descreve a frequência com que 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-9.999.999 segundos

    Por exemplo, se o intervalo é 6 e a frequência é "Mês", então a recorrência é 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 futuro, 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 7 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 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 do aplicativo lógico, apesar da configuração de recorrência do gatilho. Para evitar esse comportamento, forneça uma 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 se desviar devido a fatores como latência durante chamadas de armazenamento.

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

      • Forneça uma data e hora de início para a recorrência e as horas específicas para executar as recorrências subsequentes. Você pode usar as propriedades denominadas Nessas horas e Nesses 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 Janela deslizante, em vez do gatilho 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 novos parâmetros . Todas as opções selecionadas aparecem no gatilho após a seleção.

    Property Nome JSON Necessário Type Description
    Time zone (Fuso horário) timeZone Não String Aplica-se somente quando você especifica uma hora de início porque esse gatilho não aceita o deslocamento UTC. Selecione o fuso horário que deseja aplicar. Para obter mais informações, consulte Fuso horário padrão.
    Start time (Hora de início) startTime Não String Forneça uma data e hora de início, que tenha 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:

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

    -ou-

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

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

    Importante: Se você não selecionar um fuso horário, você deve adicionar a letra "Z" no final sem espaços. Este "Z" refere-se ao tempo náutico equivalente. Se você selecionar 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, o Logic Apps ignorará o valor de fuso horário porque o "Z" significa um formato de hora UTC.

    Para agendas simples, a hora de início é a primeira ocorrência, enquanto para agendas complexas, o gatilho não é acionado antes da hora de início. Quais são as formas de utilizar a data e hora de início?
    On these days (Nestes dias) weekDays Não String ou matriz de string Se você selecionar "Semana", poderá selecionar um ou mais dias em que deseja executar o fluxo de trabalho: segunda-feira, terça-feira, quarta-feira, quinta-feira, sexta-feira, sábado e domingo
    At these hours (A estas horas) hours Não Matriz inteira ou inteira Se você selecionar "Dia" ou "Semana", poderá selecionar um ou mais inteiros de 0 a 23 como as horas do dia para quando quiser 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, 10:00, 12:00 PM e 2:00 PM, especifique esses valores usando a propriedade chamada At these minutes.
    At these minutes (A estes minutos) minutes Não Matriz inteira ou inteira Se você selecionar "Dia" ou "Semana", poderá selecionar um ou mais inteiros de 0 a 59 como os minutos da hora em que deseja executar o fluxo de trabalho.

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

    Nota: Às vezes, o carimbo de data/hora para a execução acionada pode variar até 1 minuto da hora agendada. Se você precisar passar o carimbo de data/hora exatamente como agendado para ações subsequentes, poderá usar expressões de modelo para alterar o carimbo de data/hora de acordo. Para obter mais informações, consulte Funções de data e hora para expressões.

    Captura de tela para o designer de fluxo de trabalho de consumo e gatilho de recorrência com opções avançadas de agendamento.

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

    As futuras corridas acontecem às 12h30 e às 14h30 do mesmo dia. Cada recorrência cria sua própria instância de fluxo de trabalho. Depois disso, toda a programação se repete novamente na próxima segunda-feira. Quais são alguns outros exemplos de ocorrências?

    Captura de tela mostrando o fluxo de trabalho de consumo e o gatilho de recorrência com exemplo de agendamento avançado.

    Nota

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

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

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

Você pode ver como a definição de gatilho de recorrência aparece com as opções escolhidas examinando a definição JSON subjacente para seu fluxo de trabalho em Aplicativos lógicos de consumo e Aplicativos lógicos padrão (somente com monitoração de estado).

Com base no fato de seu aplicativo lógico ser Consumo ou Padrão, escolha uma das seguintes opções:

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

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

O exemplo a seguir mostra como uma definição de gatilho de recorrência pode aparecer na definição 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"
      }
   }
}

Nota

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

O exemplo a seguir 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"
    }
}

Executar apenas uma vez

Para executar seu fluxo de trabalho apenas uma vez no futuro, você pode aplicar o modelo de fluxo de trabalho Agendador: Executar uma vez trabalhos , que está disponível apenas para fluxos de trabalho do aplicativo lógico de consumo. Este modelo usa o gatilho Request e a ação HTTP, em vez do gatilho Recurrence, que não oferece suporte a esse padrão de recorrência.

  1. No portal do Azure, crie um aplicativo de lógica de consumo.

  2. No designer, abra o fluxo de trabalho em branco. Na barra de ferramentas do designer, selecione Ativar designer herdado.

  3. Na barra de ferramentas do designer, selecione Modelos.

  4. Na página que se abre, percorra o vídeo até à secção Modelos .

  5. Na lista Categoria, selecione Agenda e, em seguida, selecione o seguinte modelo:

    A captura de tela mostra o modelo selecionado chamado Scheduler Run once jobs.

  6. Na barra de ferramentas do designer, selecione Designer Geralmente Disponível.

  7. Siga estas etapas gerais para adicionar a ação Agendar chamada Atrasar até e fornecer o tempo para quando a próxima ação começar a ser executada.

Ou, você pode iniciar seu fluxo de trabalho com o gatilho de solicitação chamado Quando uma solicitação HTTP é recebida e passar a hora de início como um parâmetro para o gatilho.

Executar uma vez no último dia do mês

Para esta tarefa, você precisa editar o gatilho de Recorrência na definição JSON subjacente do fluxo de trabalho usando a visualização de código, não o designer, usando o exemplo a seguir:

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

Acionar mudança de recorrência e desvio (horário de verão)

Para agendar trabalhos, os Aplicativos Lógicos do Azure colocam a mensagem para processamento na fila e especificam quando essa mensagem fica disponível, com base na hora UTC quando o último trabalho foi executado e na hora UTC quando o próximo trabalho 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, a hora UTC do seu aplicativo lógico também muda para combater a mudança de hora sazonal. Os gatilhos recorrentes honram a agenda que você definiu, incluindo qualquer fuso horário que você especificar.

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

Próximos passos