O Quartz.NET é uma biblioteca open-source que facilita o agendamento de tarefas (jobs) em aplicações .NET. Ela é robusta e oferece diversas funcionalidades para agendamento, como tarefas recorrentes, execução baseada em cron expressions e muito mais. O Quartz.NET é amplamente utilizado em aplicações empresariais para agendar e automatizar tarefas de manutenção ou processamento em segundo plano. Neste exemplo, vamos configurar o Quartz.NET para agendar e executar uma tarefa recorrente usando cron expression.
Bibliotecas:
Para usar a biblioteca Quartz.NET, instale o seguinte pacote NuGet no seu projeto:
Install-Package Quartz
Código de Exemplo:
using Quartz;
using Quartz.Impl;
using System;
using System.Threading.Tasks;
public class TarefaExemplo : IJob
{
public Task Execute(IJobExecutionContext context)
{
Console.WriteLine($"Tarefa executada em: {DateTime.Now}");
return Task.CompletedTask;
}
}
class Program
{
static async Task Main(string[] args)
{
// Criando um agendador de tarefas
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
// Definindo a tarefa que será agendada
IJobDetail job = JobBuilder.Create<TarefaExemplo>()
.WithIdentity("tarefaExemplo", "grupo1")
.Build();
// Criando um cron trigger para execução a cada minuto
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("triggerExemplo", "grupo1")
.StartNow()
.WithCronSchedule("0 * * ? * *") // Executa todo minuto
.Build();
// Agendando a tarefa
await scheduler.ScheduleJob(job, trigger);
Console.WriteLine("Tarefa agendada. Pressione Enter para sair...");
Console.ReadLine();
await scheduler.Shutdown();
}
}
Explicação do Código:
Neste exemplo, usamos o Quartz.NET para criar um agendador de tarefas que executa um job chamado TarefaExemplo. A classe TarefaExemplo implementa a interface IJob, que contém o método Execute, onde a lógica da tarefa é definida. A tarefa imprime a data e hora de execução no console. O agendamento da tarefa é feito através de um cron trigger, que foi configurado para executar a tarefa a cada minuto usando a cron expression "0 * * ? * *". O agendador começa a executar a tarefa imediatamente e continuará a fazê-lo a cada minuto até que o programa seja encerrado.
Conclusão:
O Quartz.NET é uma biblioteca poderosa e flexível para agendamento de tarefas em aplicações .NET. Ele suporta cron expressions, execução de múltiplos jobs e diversos tipos de triggers, o que o torna uma solução robusta para automação de tarefas em segundo plano. É amplamente usado para cenários complexos de agendamento em sistemas empresariais.
Código fonte: GitHub
Top comments (0)