O código abaixo é executado apenas as 18:05.
Como fazer para executá-lo de 1 em 1 hora?
Trigger trigger = TriggerUtils.makeDailyTrigger("Tarefa", 18, 05);//aqui utilizamos o "makeDailyTrigger" que executa a tarefa determinada hora/minuto
trigger.setName("Tarefa");
JobDetail jobDetail = new JobDetail("Tarefa", "Tarefa Group", AgendamentoTarefasImpl.class);
//definimos o JobDetail com o nome da tarefa, o grupo e a classe que contém a tarefa a ser executada
Scheduler scheduler;
try{
scheduler = new StdSchedulerFactory().getScheduler();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
System.out.println("Iniciado");
}
catch (SchedulerException e) {
e.printStackTrace();
}
Fiz isso que vc me disse, mas nem sinal do Job funcionar. Antes desse seu exemplo tinha colocado ele num static void main em outra config, mas também não funciona. quando a aplicação subir, tenho q fazer algo ha mais?
Na classe que executa o Job vc coloca mais ou menos assim:
public class MeuJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
//Aqui vc coloca os métodos a serem executados!!!
}
catch (Exception ex) {
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
System.out.println("Erro na Job às " + df.format(new Date()));
System.out.println("Mensagem de erro: " + ex.getMessage());
}
}
}
Que eu me lembre não precisa fazer mais nada, pois o web.xml já informa ao container/servidor-web/etc que deve ser executado da forma como o quartz-properties está configurado.
Ah, outro detalhe: os arquivos quartz-jobs.xml e quartz.properties devem ficar no mesmo diretório, em um lugar que possa ser lido pela app, como por exemplo, em WEB-INF/classes.
828 [Thread-2] INFO org.quartz.ee.servlet.QuartzInitializerListener - Quartz Initializer Servlet loaded, initializing Scheduler...
828 [Thread-2] ERROR org.quartz.ee.servlet.QuartzInitializerListener - Quartz Scheduler failed to initialize: org.quartz.SchedulerException: Properties file: 'quartz.properties' could not be read. [See nested exception: java.io.FileNotFoundException: quartz.properties (O sistema não pode encontrar o arquivo especificado)]
org.quartz.SchedulerException: Properties file: 'quartz.properties' could not be read. [See nested exception: java.io.FileNotFoundException: quartz.properties (O sistema não pode encontrar o arquivo especificado)]
at org.quartz.impl.StdSchedulerFactory.initialize(StdSchedulerFactory.java:492)
at org.quartz.impl.StdSchedulerFactory.<init>(StdSchedulerFactory.java:296)
at org.quartz.ee.servlet.QuartzInitializerListener.contextInitialized(QuartzInitializerListener.java:145)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: quartz.properties (O sistema não pode encontrar o arquivo especificado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at org.quartz.impl.StdSchedulerFactory.initialize(StdSchedulerFactory.java:487)
... 10 more
Como disse anteriormente os 2 arquivos se encontram em WEB-INF…
GRAVE: Exception sending context initialized event to listener instance of class org.quartz.ee.servlet.QuartzInitializerListener
java.lang.NoSuchMethodError: org.quartz.plugins.xml.JobInitializationPlugin.getLog()Lorg/apache/commons/logging/Log;
at org.quartz.plugins.xml.JobInitializationPlugin.initialize(JobInitializationPlugin.java:245)
at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1245)
at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1460)
at org.quartz.ee.servlet.QuartzInitializerListener.contextInitialized(QuartzInitializerListener.java:152)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)