Quando inicio uma aplicação web, ao iniciar um agendamento feito pelo scheduler, ele fica executando a mesma ação o tempo todo. O normal seria ele realizar a ação, parar e depois do tempo que eu determinei, ele deveria iniciar novamente a ação.
Alguem sabe o que acontece?
Segue o código do meu agendamento.
public class AgendamentoTarefasImpl implements Job{
public void execute(JobExecutionContext jec) {
int ix=1;
System.out.println("INICIOU");
System.out.println("************************** " + ix );
EnviarEmailImpl ev = new EnviarEmailImpl();
CalculaTempoUtil ct = new CalculaTempoUtil();
EmailDao dao = new EmailDaoImpl();
List<Email> emails = new ArrayList<Email>();
List<Email> emailsSeremExlcuidos = new ArrayList<Email>();
List<Email> emailsSeremEnviados = new ArrayList<Email>();
List<Integer> tempoEmail = ct.retornaTempoEmail();
emails = dao.listarEmailNaoEnviado();
if(emails.isEmpty()){
System.out.println("Esta vazio");
}
else{
try{
for(int i = 0; i<emails.size(); i++)
{
if(tempoEmail.get(i) >= 2 )
{
//Se for maior que dois dias o email será excluído
emailsSeremExlcuidos.add(emails.get(i));
}
else
{
//Se for menor que dois dias o email será reenviado
emailsSeremEnviados.add(emails.get(i));
}
}
}catch(Exception e)
{
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
System.out.println("Erro na Job às " + df.format(new Date()));
System.out.println("Mensagem de erro: " + e.getMessage());
Logger.getLogger(AgendamentoTarefasImpl.class.getName()).log(Level.SEVERE, null, e);
}
}
xml
<servlet>
<servlet-name>
QuartzInitializer
</servlet-name>
<display-name>
Quartz Initializer Servlet
</display-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz.properties</param-value>
</init-param>
quartz.properties
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames = quartz-config.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
quartz-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<quartz>
<job>
<job-detail>
<name>scheduler</name>
<group>schedulers</group>
<description>schedule a nightly job</description>
<job-class>com.suporte.agendamento.impl.AgendamentoTarefasImpl</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
</job-detail>
<trigger>
<cron>
<name>scheduler-trigger</name>
<group>scheduler-triggers</group>
<job-name>scheduler</job-name>
<job-group>schedulers</job-group>
<cron-expression>* 0/1 * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>