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 de acordo com uma programação, você pode usar o gatilho genérico de Recorrência como 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
Opções avançadas de agendamento, como Nessas horas e At esses dias, estão disponíveis e funcionam apenas com gatilhos de sondagem internos, como os gatilhos de Recorrência e Janela Deslizante, que são executados diretamente com o tempo de execução dos Aplicativos Lógicos do Azure. Para conectores geridos pela Microsoft, alojados e executados no Azure, os gatilhos de sondagem calculam a próxima recorrência utilizando apenas os valores de Intervalo e Frequência, e não as opções de agendamento avançadas.
O gatilho de recorrência não está associado a nenhum serviço específico, portanto, você pode usar o gatilho 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*. 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 integrado e é executado nativamente no tempo de execução 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 de 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. O gatilho de recorrência não está disponível no momento para fluxos de trabalho sem estado.
Adicionar gatilho Recorrência
Dependendo de seu fluxo de trabalho ser Consumo ou Padrão, siga as etapas correspondentes:
No portal do Azure, abra o recurso de aplicativo lógico e o fluxo de trabalho em branco.
Siga essas etapas gerais para adicionar o gatilho integrado Agendar denominado Recorrência.
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:
Propriedade Nome JSON Obrigatório Type 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ínimos e máximos:
– Mês: 1 a 16 meses
– Semana: 1 a 71 semanas
–Dia: 1 a 500 dias
– Hora: 1 a 12.000 horas
– Minuto: 1 a 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 futura, 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.Revise as seguintes considerações ao usar o gatilho Recorrência:
Se não especificar uma data e hora de início específicas, a primeira recorrência será executada imediatamente quando guardar o fluxo de trabalho ou implementar o recurso de aplicação lógica, apesar da configuração de recorrência do seu 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 nenhuma outra opção de agendamento avançada, como horários específicos para executar recorrências futuras, essas recorrências serão baseadas no último horário 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 nenhuma recorrência, especialmente quando a frequência for 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 de aplicativos lógicos 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.
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 Type 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. Para obter mais informações, confira Fusos horários padrão. Hora de início startTime
Não String Forneça uma data e hora de início, que tem no máximo 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 uma diferença 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
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", obterá 10h, 12h e 14h para as horas do dia.
Observação: Por padrão, os minutos do dia são calculados com base no início da recorrência. 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.Por exemplo, digamos 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 8h, horário 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?
Observação
O gatilho mostra uma visualização da recorrência especificada somente quando você seleciona Dia ou Semana como frequência.
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 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 expressão ou referência de 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"
}
}
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 trabalhos únicos, que está disponível apenas para fluxos de trabalho de aplicativos lógicos de Consumo. Esse modelo usa o gatilho Solicitação e a ação HTTP, em vez do gatilho Recorrência, que não oferece suporte a esse padrão de recorrência.
No portal do Azure, crie um aplicativo lógico de Consumo.
No designer, abra o fluxo de trabalho em branco. Na barra de ferramentas do designer, selecione Habilitar Designer Legado.
Na barra de ferramentas do designer, selecione Modelos.
Na página que se abre, passe o vídeo até a seção Modelos.
Na lista Categoria, selecione Agendamento e selecione o seguinte modelo:
Na barra de ferramentas do designer, selecione Designer geralmente disponível.
Siga essas etapas gerais para adicionar a ação Agendar chamada Atrasar até e fornecer o horário em que 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 o horário de início como parâmetro para o gatilho.
Execute uma vez no último dia do mês
Para essa 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, e não o designer, usando o exemplo a seguir:
"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.