SlideShare una empresa de Scribd logo
1 de 46
Iniciativa Globalcode Agendamento de Tarefas com Java SE e EE Open-source Education
Palestrante ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Palestrante ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conceitos Gerais ,[object Object],[object Object],[object Object],[object Object]
Conceitos Gerais ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estudo de Caso ,[object Object],[object Object],[object Object]
Estudo de Caso
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java SE ,[object Object],[object Object],[object Object]
java.util.TimerTask ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
java.util.TimerTask ,[object Object],[object Object]
java.util.Timer ,[object Object],[object Object],[object Object]
java.util.Timer ,[object Object],[object Object],[object Object]
java.util.Timer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java SE Ex: import java.util.Timer; public class Main { public static void main(String[] args) { TarefaAgendada tarefa = new TarefaAgendada(); Timer agendador = new Timer(); agendador.schedule(tarefa,5000,5000); } }
Agendamento com Java SE ,[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java EE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java EE
Agendamento com Java EE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java EE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java EE ,[object Object],[object Object],[object Object]
javax.ejb.TimerService ,[object Object],[object Object],[object Object],[object Object],[object Object]
javax.ejb.TimerService ,[object Object],[object Object],[object Object],[object Object],[object Object]
javax.ejb.TimerService ,[object Object],[object Object],[object Object]
Agendamento com Java EE Exemplo para EJB 2.1 public class TarefaAgendadaBean implements SessionBean, TimedObject { SessionContext ctx; public void setSessionContext(Context ctx) { this.ctx = ctx; } public void agendarTarefa() { TimerService agendador = ctx.getTimerService(); agendador.createTimer(5000,5000,null); } //demais métodos }
Agendamento com Java EE Exemplo para EJB 3.0 @Stateless public class TarefaAgendadaBean { @Resource SessionContext ctx; public void agendarTarefa() { TimerService agendador = ctx.getTimerService(); agendador.createTimer(5000,5000,null); } //demais métodos }
javax.ejb.Timer ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java EE ,[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java SE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agendamento com Java EE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Framework Quartz ,[object Object],[object Object],[object Object],[object Object],[object Object]
Framework Quartz ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Framework Quartz ,[object Object],[object Object],[object Object],[object Object],[object Object]
Framework Quartz ,[object Object],[object Object],[object Object],[object Object]
Framework Quartz public class Main { public static void main(String[] args) {   Scheduler agendador =  StdSchedulerFactory.getDefaultScheduler();   JobDetail detalhe = new JobDetail(“job1”,”grupo1” ,TarefaAgendada.class);   Trigger acionador =  TriggerUtils.makeHourlyTrigger(1);   acionador.setName(“Trigger1”);   acionador.setStartTime(new Date());   agendador.scheduleJob(detalhe,acionador);   agendador.start(); } }
Framework Quartz ,[object Object],[object Object],[object Object],[object Object]
Framework Quartz Exemplo de quartz_jobs.xml: <quartz> <job> <job-detail> <name>job1</name> <group>grupo1</group> <job-class> br.com.globalcode.TarefaAgendada </job-class>   </job-detail>
Framework Quartz <trigger> <simple> <name>testeTrigger</name> <group>DEFAULT</group> <start-time>2006-12-01 16:09:00 PM</start-time> <repeat-count>5</repeat-count> <repeat-interval>10000</repeat-interval> </simple> </trigger> </job> </quartz>
Framework Quartz Exemplo de classe que utiliza o agendamento declarativo: public class Main { public static void main(String[] args) {   Scheduler agendador =  StdSchedulerFactory.getDefaultScheduler();   agendador.start(); } }
Framework Quartz ,[object Object]

Más contenido relacionado

Similar a agendamento de tarefas com java se e ee

Utilitários para Programação Concorrente em Java (2005)
Utilitários para Programação Concorrente em Java (2005)Utilitários para Programação Concorrente em Java (2005)
Utilitários para Programação Concorrente em Java (2005)Helder da Rocha
 
Node.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasNode.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasRodrigo Branas
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
Testes de performance com JUnitPerf
Testes de performance com JUnitPerfTestes de performance com JUnitPerf
Testes de performance com JUnitPerfDenis L Presciliano
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - IIFabio Moura Pereira
 
Programação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIProgramação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIFabio Moura Pereira
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01John Godoi
 
Artigo Padrões J2EE: Um exemplo de uso
Artigo Padrões J2EE: Um exemplo de usoArtigo Padrões J2EE: Um exemplo de uso
Artigo Padrões J2EE: Um exemplo de usoErivan de Sena Ramos
 
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasThreads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasHelder da Rocha
 
Threads 08: Executores e Futures
Threads 08: Executores e FuturesThreads 08: Executores e Futures
Threads 08: Executores e FuturesHelder da Rocha
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java IIIVerônica Veiga
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7PeslPinguim
 
Testes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusTestes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusDenis L Presciliano
 

Similar a agendamento de tarefas com java se e ee (20)

Utilitários para Programação Concorrente em Java (2005)
Utilitários para Programação Concorrente em Java (2005)Utilitários para Programação Concorrente em Java (2005)
Utilitários para Programação Concorrente em Java (2005)
 
Node.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasNode.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo Branas
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
Testes de performance com JUnitPerf
Testes de performance com JUnitPerfTestes de performance com JUnitPerf
Testes de performance com JUnitPerf
 
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 
ESTRUTURA DE DADOS (JAVA) AULA 09
ESTRUTURA DE DADOS (JAVA) AULA 09ESTRUTURA DE DADOS (JAVA) AULA 09
ESTRUTURA DE DADOS (JAVA) AULA 09
 
THREADS EM JAVA: INTRODUÇÃO
THREADS EM JAVA: INTRODUÇÃOTHREADS EM JAVA: INTRODUÇÃO
THREADS EM JAVA: INTRODUÇÃO
 
Testes de carga com j meter
Testes de carga com j meterTestes de carga com j meter
Testes de carga com j meter
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - II
 
Programação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIProgramação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte II
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Artigo Padrões J2EE: Um exemplo de uso
Artigo Padrões J2EE: Um exemplo de usoArtigo Padrões J2EE: Um exemplo de uso
Artigo Padrões J2EE: Um exemplo de uso
 
Java6
Java6Java6
Java6
 
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticasThreads 03: Ciclo de vida, aplicações e boas práticas
Threads 03: Ciclo de vida, aplicações e boas práticas
 
servlet-introducao
servlet-introducaoservlet-introducao
servlet-introducao
 
Threads 08: Executores e Futures
Threads 08: Executores e FuturesThreads 08: Executores e Futures
Threads 08: Executores e Futures
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7Curso Básico de Java - Aula 7
Curso Básico de Java - Aula 7
 
Testes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusTestes em Aplicações Web com Cactus
Testes em Aplicações Web com Cactus
 

Más de elliando dias

Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introductionelliando dias
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojureelliando dias
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypseelliando dias
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lispelliando dias
 
Clojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp ProgrammersClojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp Programmerselliando dias
 

Más de elliando dias (20)

Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 
From Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn IntroductionFrom Lisp to Clojure/Incanter and RAn Introduction
From Lisp to Clojure/Incanter and RAn Introduction
 
FleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in ClojureFleetDB A Schema-Free Database in Clojure
FleetDB A Schema-Free Database in Clojure
 
Clojure and The Robot Apocalypse
Clojure and The Robot ApocalypseClojure and The Robot Apocalypse
Clojure and The Robot Apocalypse
 
Clojure - A new Lisp
Clojure - A new LispClojure - A new Lisp
Clojure - A new Lisp
 
Clojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp ProgrammersClojure - An Introduction for Lisp Programmers
Clojure - An Introduction for Lisp Programmers
 

agendamento de tarefas com java se e ee

  • 1. Iniciativa Globalcode Agendamento de Tarefas com Java SE e EE Open-source Education
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Agendamento com Java SE Ex: import java.util.Timer; public class Main { public static void main(String[] args) { TarefaAgendada tarefa = new TarefaAgendada(); Timer agendador = new Timer(); agendador.schedule(tarefa,5000,5000); } }
  • 19.
  • 20.
  • 21.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Agendamento com Java EE Exemplo para EJB 2.1 public class TarefaAgendadaBean implements SessionBean, TimedObject { SessionContext ctx; public void setSessionContext(Context ctx) { this.ctx = ctx; } public void agendarTarefa() { TimerService agendador = ctx.getTimerService(); agendador.createTimer(5000,5000,null); } //demais métodos }
  • 30. Agendamento com Java EE Exemplo para EJB 3.0 @Stateless public class TarefaAgendadaBean { @Resource SessionContext ctx; public void agendarTarefa() { TimerService agendador = ctx.getTimerService(); agendador.createTimer(5000,5000,null); } //demais métodos }
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Framework Quartz public class Main { public static void main(String[] args) { Scheduler agendador = StdSchedulerFactory.getDefaultScheduler(); JobDetail detalhe = new JobDetail(“job1”,”grupo1” ,TarefaAgendada.class); Trigger acionador = TriggerUtils.makeHourlyTrigger(1); acionador.setName(“Trigger1”); acionador.setStartTime(new Date()); agendador.scheduleJob(detalhe,acionador); agendador.start(); } }
  • 42.
  • 43. Framework Quartz Exemplo de quartz_jobs.xml: <quartz> <job> <job-detail> <name>job1</name> <group>grupo1</group> <job-class> br.com.globalcode.TarefaAgendada </job-class> </job-detail>
  • 44. Framework Quartz <trigger> <simple> <name>testeTrigger</name> <group>DEFAULT</group> <start-time>2006-12-01 16:09:00 PM</start-time> <repeat-count>5</repeat-count> <repeat-interval>10000</repeat-interval> </simple> </trigger> </job> </quartz>
  • 45. Framework Quartz Exemplo de classe que utiliza o agendamento declarativo: public class Main { public static void main(String[] args) { Scheduler agendador = StdSchedulerFactory.getDefaultScheduler(); agendador.start(); } }
  • 46.