Ol\u00e1 Amigos,<\/p>\n
Hoje faremos um agendador de Tarefas Quartz Framework. Um agendador de tarefas \u00e9 um processo que ser\u00e1 executado em uma determinada data e hor\u00e1rio espec\u00edfico. Esse momento de execu\u00e7\u00e3o pode ser c\u00edclico, ou seja, h\u00e1 uma repeti\u00e7\u00e3o (di\u00e1ria, semanal, mensal, anual) ou em intervalos menores como (segundos, minutos ou horas). Para iniciar fa\u00e7a o download dos arquivos no site oficial. Esses s\u00e3o os arquivos necess\u00e1rio que voc\u00ea deve adicionar no class path da aplica\u00e7\u00e3o.<\/p>\n No c\u00f3digo abaixo criaremos a classe que conter\u00e1 a regra de neg\u00f3cio que vai ser agendada para execu\u00e7\u00e3o.<\/p>\n Em seguida criaremos a classe que dispara o JOB. Fiz coment\u00e1rio em cada linha para que fique bem claro o que est\u00e1 sendo feito.<\/p>\n Pronto. Basta executar a classe “AgendaTrigger” que voc\u00ea ver\u00e1 a execu\u00e7\u00e3o a cada 2 segundos. Agendador de Tarefas Quartz Ol\u00e1 Amigos, Hoje faremos um agendador de Tarefas Quartz Framework. Um agendador de tarefas \u00e9 um processo que ser\u00e1 executado em uma determinada data e hor\u00e1rio espec\u00edfico. Esse momento de execu\u00e7\u00e3o pode ser c\u00edclico, ou seja, …<\/p>\n
\n Utilizaremos a vers\u00e3o 2.2.
\n<\/a>
\n<\/p>\n\r\n c3p0-0.9.1.1.jar\r\n log4j-1.2.16.jar\r\n quartz-2.2.1.jar\r\n quartz-jobs-2.2.1.jar\r\n slf4j-api-1.6.6.jar\r\n slf4j-log4j12-1.6.6.jar\r\n<\/pre>\n
\r\npackage br.com.feltex.quartz;\r\n\r\nimport org.quartz.Job;\r\nimport org.quartz.JobExecutionContext;\r\nimport org.quartz.JobExecutionException;\r\n\r\npublic class AtualizaCadastroJOB implements Job {\r\n\r\n\r\n \/\/Aqui fica o c\u00f3digo que ser\u00e1 executado pelo agendamento.\r\n \/\/ Caso ocorra um erro de execu\u00e7\u00e3o uma exce\u00e7\u00e3o ser\u00e1 lan\u00e7ada. \r\n\tpublic void execute(JobExecutionContext context)\r\n\t\t\tthrows JobExecutionException {\r\n\t\tSystem.out.println(\"Cadastro atualizado com sucesso!\");\t\t\r\n\t}\r\n}\r\n<\/pre>\n
\r\npackage br.com.feltex.quartz;\r\n\r\nimport org.quartz.JobBuilder;\r\nimport org.quartz.JobDetail;\r\nimport org.quartz.Scheduler;\r\nimport org.quartz.SimpleScheduleBuilder;\r\nimport org.quartz.Trigger;\r\nimport org.quartz.TriggerBuilder;\r\nimport org.quartz.impl.StdSchedulerFactory;\r\n\r\n\/\/ Classe que dispara o JOB\r\npublic class AgendaTrigger {\r\n\r\n\tpublic static void main(String[] args) {\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ Registrando a classe que execur\u00e1 meus m\u00e9todos de neg\u00f3cio\r\n\t\t\tJobDetail job = JobBuilder.newJob(AtualizaCadastroJOB.class)\r\n\t\t\t\t\t.withIdentity(\"nomeMeuJOB\", \"grupoCadastro\").build();\r\n\r\n\t\t\t\/\/ Criado um objeto de intervalo de repeti\u00e7\u00e3o\r\n\t\t\t\/\/ No nosso caso ser\u00e1 de 2 segundos\r\n\t\t\tSimpleScheduleBuilder intervalo = SimpleScheduleBuilder\r\n\t\t\t\t\t.simpleSchedule().withIntervalInSeconds(2).repeatForever();\r\n\r\n\t\t\t\/\/ Criado um disparador\r\n\t\t\tTrigger trigger = TriggerBuilder.newTrigger()\r\n\t\t\t\t\t.withIdentity(\"nomeDisparador\", \"grupoCadastro\")\r\n\t\t\t\t\t.withSchedule(intervalo).build();\r\n\r\n\t\t\t\r\n\t\t\t\/\/ Finalmente \u00e9 criado um objeto de agendamento\r\n\t\t\t\/\/ que recebe o JOB e o disparador!\r\n\t\t\tScheduler scheduler = new StdSchedulerFactory().getScheduler();\r\n\t\t\tscheduler.start();\r\n\t\t\tscheduler.scheduleJob(job, trigger);\r\n\t\t} catch (Exception e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n
\nVeja um exemplo de sa\u00edda:<\/p>\n\r\nCadastro atualizado com sucesso!\r\nCadastro atualizado com sucesso!\r\nCadastro atualizado com sucesso!\r\nCadastro atualizado com sucesso!\r\nCadastro atualizado com sucesso!\r\n<\/pre>\n
Links relacionados<\/H2>
\n Site oficial Quartz<\/a><\/p>\nGostou do post? Agrade\u00e7a o autor compartilhando nas redes sociais. Clique nos links abaixo:<\/b><\/H2><\/p>\n","protected":false},"excerpt":{"rendered":"