Agendando tarefas com o Cronos no .NET

Cronos é uma biblioteca de agendamento de tarefas para .NET que permite agendar e executar tarefas em horários ou intervalos específicos utilizando o padrão CRON.

Neste artigo, apresentarei como configurar e utilizar o agendamento de tarefas em segundo plano em uma aplicação .NET 7.

Pré-requisitos

  • .NET 7.0
  • Visual Studio 2022
  • Nuget package Cronos

Web API

Na classe Program.cs da API, configure conforme o código abaixo:

O próximo passo é criar a classe de extensão CronJobExtensions, responsável por controlar os próximos agendamentos de cada tarefa utilizando o CronExpression:

Na sequência, é necessário criar a classe de extensão ScheduledServiceExtensions responsável por registrar os agendamentos:

E por fim, vamos criar a classe de agendamento das ações, neste exemplo criaremos um agendamento para ser disparado a cada segundo e outro para ser disparado a cada minuto. Esses dois agendamentos são registrados na classe Program.cs

Testando

Para testar os agendamentos, execute a API e analise os logs gerados pelo Serilog no console da aplicação:

É possível analisar que o agendamento da tarefa que verifica o banco de dados é disparado a cada segundo, enquanto o agendamento que envia e-mail é disparado a cada minuto.

Finalizando

O Cronos é uma biblioteca para analisar expressões Cron e calcular as próximas ocorrências, com ele é possível agendar tarefas importantes em segundo plano, exemplos: Realizar manutenção no banco de dados toda madruga, capturar dados de uma origem de tempos em tempos, criação de alertas, etc.

Os detalhes completo deste exemplo você encontra no meu GitHub: https://github.com/hgmauri/sample-task-scheduler

Deixe uma resposta