Neste artigo falaremos sobre a biblioteca de job scheduling Quartz.NET, apresentando seus principais conceitos, como o de Jobs e Triggers, explicando quando e como devem ser utilizados, além dos conceitos de listener dos mesmos. Após apresentar estes conceitos faremos um exemplo prático com a criação de um sistema de notificações, aplicando os principais recursos do Quartz.NET.

Diversos projetos de software possuem demandas para agendamento de tarefas, sejam softwares que executem backups, que enviam notificações ou até mesmo que avaliam indicadores corporativos. O Quartz.NET pode ser muito útil nestes projetos, abstraindo toda a rotina de agendamento e execução destas tarefas permitindo que o desenvolvedor se preocupe apenas com a lógica de sua aplicação.

É extremamente comum nos depararmos com situações em que necessitamos agendar a execução de uma determinada tarefa em nossa aplicação. Seja um aplicativo que precisa diariamente extrair uma informação de um web site, seja um software de importação que precisa de tempos em tempos ler uma determinada fonte de dados, ou até mesmo rotinas mais simples, como a verificação diária dos aniversariantes para envio de mala direta. Em todos estes cenários temos algumas formas de agendar e executar estas tarefas. Uma delas é criar um aplicativo e colocar o mesmo no agendador de tarefas do Windows. Outra é controlarmos, no próprio aplicativo, o agendamento e execução dos ciclos do mesmo. Para esta segunda opção, teríamos que cuidar da execução das nossas rotinas, gerenciando quando é o agendamento delas, qual a periodicidade, quando seria o próximo ciclo de execução da mesma, enfim, teríamos uma série de implementações adicionais que nos tomariam tempo de projeto.

Uma excelente alternativa é utilizar uma solução pronta, desacoplada e especializada em cuidar exatamente desse agendamento e execução de tarefas: o Quartz.NET.

O Quartz.NET é uma biblioteca de job scheduling inspirada na biblioteca Quartz do Java. Trata-se de uma iniciativa open-source que visa fornecer uma série de recursos e funcionalidades para agendamento e execução de tarefas em aplicações .NET.

O primeiro conceito chave do Quartz.NET é o conceito de Jobs, que representa uma tarefa a ser agendada e executada pelo mesmo, sendo representada pela interface IJob. Esta interface possui apenas um método, chamado execute, que contém a implementação da rotina a ser executada.

Outro conceito chave é o de Trigger, sendo esta a responsável por disparar as nossas Jobs, existindo dois tipos de triggers: SimpleTrigger e CronTrigger.

A SimpleTrigger representa uma trigger que pode ser executada em duas condições:

  • Execução única - Uma vez disparada a trigger a job vinculada a mesma será executada apenas uma vez.
  • Execução cíclica – Indica que a trigger irá ser disparada a cada X tempo, de maneira repetitiva.

Por outro lado, a CronTrigger permite que seja definida uma regra baseada em calendário para a trigger, sendo possível definir, por exemplo, que toda segunda-feira às 9 horas da manhã a trigger será disparada.

Além disso, os Jobs e as triggers podem ser adicionados a grupos, facilitando a organização e gerenciamento dos mesmos.

Estes dois conceitos, triggers e jobs, se juntam através do objeto Scheduler, que por sua vez é responsável por gerenciar as triggers e vincular as mesmas à determinados jobs.

...
Quer ler esse conteúdo completo? Tenha acesso completo