Quando um pipeline é configurado e publicado com qualquer variável do 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 Scheduler Trigger possui 4 tipos. 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. 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 seja configurado. Dessa forma, a execução acontece à meia-noite do Time Zone UTC, que pode ser diferente do seu Time Zone. Caso seja necessário a configuração do Time Zone, você pode usar o Custom Scheduler e assim definir essas informações de recorrência à meia-noite nos seus parâmetros.
Dê uma olhada nos parâmetros de configuração do Scheduler Trigger:
Time Zone: define sob qual Time Zone o pipeline será executado. Se nenhum Time Zone for definido, será seguido o padrão UTC (12h UTC corresponde às 9h no fuso de São Paulo, por exemplo).
Maximum Timeout: tempo limite para que o pipeline processe informações antes de retornar uma resposta (padrão = 30000, limite = 900000). Em milissegundos. Caso o processamento demore mais do que a determinação do parâmetro, a execução é finalizada.
Retries: número máximo de tentativas em caso de falha na execução.
Allow Redelivery Of Messages: se a opção estiver ativada, permite o reenvio da mensagem em caso de falha do Pipeline Engine. Leia o artigo sobre o Pipeline Engine para obter mais detalhes.
Allow 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:
- se habilitado: a execução seguinte acontece simultaneamente com a atual.
- se desabilitado: a execução seguinte, além das demais, não será iniciada até que a execução anterior seja finalizada.
Scheduler Trigger em Ação
Esse trigger pode ser usado em alguns casos em que é necessário buscar dados de sistemas que não têm capacidade de enviar os dados para a Digibee utilizando HTTP, REST, HTTP File, Kafka, RabbitMQ e JMS. Alguns desses cenários são:
buscar arquivos em diretórios SFTP, FTP, S3, Google Cloud Storage, etc.;
buscar informações diretamente em bancos de dados (nesse caso, recomendamos a utilização do componente Stream DB com paginação);
executar chamadas de verificação de status em endpoints de Plataforma que não têm capacidade de sensibilizar os pipelines através de webhooks.
Veja a seguir como o trigger se comporta em determinada situação e a sua respectiva configuração.
Pipeline executado a cada 30 segundos, sem sobreposição usando uma fonte de dados estática
Observe como configurar um pipeline com o Scheduler Trigger para ser executado automaticamente a cada 30 segundos sem que aconteça uma sobreposição de execuções. Também será configurado um Timeout de 2 minutos e que siga o Time Zone de São Paulo (UTC-3).
Primeiramente, crie um novo pipeline e configure o trigger. A configuração pode ser feita da seguinte forma:
Agora observe como configurar um MOCK no pipeline para que ele seja o provedor de dados que o endpoint retorna ao final. Coloque o componente indicado, conecte-o ao trigger e configure-o com o seguinte JSON:
{
"data": {
"products": [
{
"name": "Samsung 4k Q60T 55",
"price": 3278.99
},
{
"name": "Samsung galaxy S20 128GB",
"price": 3698.99
}
]
}
}
Feito isso, a cada vez que o pipeline for executado, o JSON definido como resposta será retornado automaticamente.
Após implantado, é possível ver a execução do pipeline na tela Painel > Execuções Concluídas: