Quartz.NET - Agendamento de Tarefas

20
Quartz.NET Vítor Paulino http://netpont o.org 23ª Reunião Lisboa - 24/09/2011

Transcript of Quartz.NET - Agendamento de Tarefas

Page 1: Quartz.NET - Agendamento de Tarefas

Quartz.NET Vítor Paulino

http://netponto.org23ª Reunião Lisboa - 24/09/2011

Page 2: Quartz.NET - Agendamento de Tarefas

Patrocinadores desta reunião

Page 3: Quartz.NET - Agendamento de Tarefas

Patrocinadores desta reunião

Page 4: Quartz.NET - Agendamento de Tarefas

Vítor Paulino

EuISEL

NetPonto

Copos & Jantas

Cliente A

Cliente B

Novabase

Page 5: Quartz.NET - Agendamento de Tarefas

Agenda

• O que é o Quartz.NET• Arquitectura• Funcionalidades• Entidades• Demonstrações

Page 6: Quartz.NET - Agendamento de Tarefas

O que é o Quartz.NET

“Quartz.NET is a full-featured, open source job scheduling system that can be used from

smallest apps to large scale enterprise systems.”

Page 7: Quartz.NET - Agendamento de Tarefas

Arquitectura QuartzScheduler

QuartzSchedulerThread

Triggers IJob

Base de dados

Calendars

RAM

Listeners

SimpleThreadPool

JobRunShell

TriggerFiredBundle

JobStore

QuartzSchedulerThread

Page 8: Quartz.NET - Agendamento de Tarefas

Funcionalidades

• Diferentes tipos de execução• Triggers• Agendamento de Jobs• Execução de jobs• Persistência de Jobs• Listerners e Plugins

Page 9: Quartz.NET - Agendamento de Tarefas

Job• JobDetail–Abstrai a entidade que implementa as interfaces: – Ijob• Contracto base para implementações de tarefas

– IStatefulJob : IJob• Tarefa que pretende manter estado entre execuções – JobDataMap

– InterruptableJob :IJob• Tarefa que possibilita que a sua execução seja interrompida

pelo Scheduler

Page 10: Quartz.NET - Agendamento de Tarefas

Trigger

• Identifica-se por nome e grupo• Define a execução do job:–Quando Começa–Quando Acaba–Quantas vezes–Intervalo de tempo–Expressões de sintaxe própria

Page 11: Quartz.NET - Agendamento de Tarefas

Calendars

• Associam-se ao Scheduler• Define regras para os dias a executar• Já Implementados:–WeeklyCalendar–HolydayCalendar

Page 12: Quartz.NET - Agendamento de Tarefas

Listeners

• Classe que implementa IListener• Adicionam-se ao Scheduler• Associam-se ao job• Monitorizam 3 momentos:–Antes da execução do job–Depois da execução–Quando a execução foi abortada

Page 13: Quartz.NET - Agendamento de Tarefas

Plugins

• Capacidade de anexar mais funcionalidades ao fluxo de execução de um Job ou trigger• Implementados como Listeners

Page 14: Quartz.NET - Agendamento de Tarefas

Funcionamento do Quartz

demonstração

Page 15: Quartz.NET - Agendamento de Tarefas

Questões?

Page 16: Quartz.NET - Agendamento de Tarefas

Referências

Site do Quartz.NET – http://quartznet.sourceforge.net/

Page 17: Quartz.NET - Agendamento de Tarefas

Patrocinadores desta reunião

Page 18: Quartz.NET - Agendamento de Tarefas

Patrocinadores desta reunião

Page 19: Quartz.NET - Agendamento de Tarefas

Próximas reuniões presenciais

• 24/09/2011 – Setembro (2 anos!)• 29/10/2011 – Outubro• 19/11/2011 – Outubro (Coimbra)• 26/11/2011 – Novembro

Reserva estes dias na agenda! :)

Page 20: Quartz.NET - Agendamento de Tarefas

Obrigado!

Vítor [email protected]://www.linkedin.com/in/vpaulinohttp://pontonetpt.org/members/vitorpaulino