Quando um pipeline é configurado e publicado com o Custom Scheduler Trigger, é criada uma função que executa o fluxo em intervalos pré-estabelecidos. Para isso, segue-se uma expressão cron, definida nas configurações desse tipo de gatilho.
Clique aqui para saber mais sobre a expressão cron.
O Custom Scheduler Trigger possui 4 variáveis. Veja quais são elas:
- 5-Minute Scheduler: possui uma pré-configuração de 5 minutos. Quando você implanta um pipeline com essa variável, as execuções ficam programadas para cada 5 minutos.
- 30-Minute Scheduler: possui uma pré-configuração de 30 minutos. Quando você implanta um pipeline com essa variável, as execuções ficam programadas para cada 30 minutos.
- Midnight Scheduler: possui uma pré-configuração para ser acionada sempre à meia-noite. Quando você implanta um pipeline com essa variável, as execuções ficam programadas para meia-noite.
- Custom Scheduler: não possui pré-configuração, permitindo que você customize uma cron expression customizada. Quando você implanta um pipeline com essa variável, as execuções ficam programadas de acordo com a cron expression que você especificou.
IMPORTANTE: o Midnight Scheduler não permite que o Time Zone ID seja configurado. Dessa forma, a execução acontece à meia-noite do Time Zone UTC, que pode ser diferente do seu Time Zone.
Dê uma olhada nos parâmetros de configuração do Custom Scheduler Trigger:
- Concurrent Scheduling: indica se o pipeline deve seguir a regra, isto é, se deve iniciar a execução mesmo que existam execuções prévias em processamento. Digamos que um pipeline seja configurado para execução a cada 3 minutos. No entanto, uma das execuções anteriores levou 4 minutos para ser finalizada. Assim, temos cenários diferentes:
- TRUE: a execução seguinte acontece simultaneamente com a atual. As execuções podem encavalar, o que resulta em gasto da memória alocada para o pipeline quando “n” threads ocorrem em paralelo.
- FALSE: a execução seguinte, além das demais, não será iniciada até que a execução anterior seja finalizada.
Exemplo:
{
"concurrentScheduling": false
}
- Time Zone ID: define sob qual timeZone o pipeline será executado. Se nenhum timeZone foi definido, será seguido o padrão UTC (12h UTC == 9h no fuso de São Paulo, por exemplo).
{
"timeZoneId": "America/Sao_Paulo"
}
Veja outros Time Zone IDs:
"timeZoneId" Horas/Minutos
"Brazil/Acre" (UTC-05:00)
"Brazil/West" (UTC-04:00
"America/Sao_Paulo" (UTC-03:00)
"Canada/Atlantic" (UTC-03:00)
"America/Buenos_Aires" (UTC-03:00)
"Europe/Sofia" (UTC+03:00)
"America/Los_Angeles" (UTC-07:00)
Clique aqui para ter acesso a uma lista completa.
- Retries: número de vezes que o trigger tentará a ativação em caso de erros na execução.
- Cron Expression: expressão que define o dia, a hora e a recorrência da execução de um pipeline.
Exemplo para a execução de um pipeline a cada 5 minutos:
{
"cronExpression": "0 */5 * ? * *"
}
Você pode obter mais informações sobre o formato das expressões clicando aqui. Mas se você deseja saber como construí-las, então clique aqui.
- Payload: se o trigger precisa de algum payload para rodar, você pode definir um payload de JSON
- Type: tipo de trigger
- Name: nome do trigger
- Timeout: tempo limite para que o fluxo em processamento retorne alguma resposta (em milissegundos - padrão: 60000; limite: 300000)
Exemplo:
{
"timeout": "300000"
}
Custom Scheduler Trigger em Ação
Digamos que você deseje ativar a execução de um pipeline a cada 30 minutos, sem que haja encavalamento, com um Timeout de 2 minutos e que siga o Time Zone de São Paulo (UTC-3).
{
"cronExpression": "0/30 * * ? * * *",
"concurrentScheduling": false,
"timeout": "120000",
"timeZoneId": "America/Sao_Paulo"
}