Fiz da seguinte maneira..
criei um Servlet Listener
Code:
public class EnviadorServletListener implements ServletContextListener {
private EnviadorThread thread;
public void contextInitialized(ServletContextEvent sce) {
thread = new EnviadorThread();
thread.start();
}
public void contextDestroyed(ServletContextEvent sce) {
thread.shutdownScheduler();
}
}
Thread do Quartz
Code:
public class EnviadorThread extends Thread {
private static Scheduler scheduler;
@Override
public void run() {
try {
scheduler = StdSchedulerFactory.getDefaultScheduler();
Trigger triggerEnviador = TriggerUtils.makeMinutelyTrigger(2);
triggerEnviador.setName("TriggerEnviador");
triggerEnviador.setStartTime(new Date());
JobDetail jobEnviador = new JobDetail("jobEnviador", null, JobEnviador.class);
scheduler.scheduleJob(jobEnviador, triggerEnviador);
scheduler.start();
} catch (SchedulerException ex) {
ex.printStackTrace();
}
}
public void shutdownScheduler() {
try {
scheduler.shutdown();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new EnviadorThread().start();
}
}
O job do Quartz
Code:
public class JobEnviador implements Job {
private Session session;
private Transaction txn;
public JobEnviador() { }
public void execute(JobExecutionContext arg0) throws JobExecutionException {
session = HibernateUtil.getSession();
//sua logica
session.close();
}
}
E no web.xml
Code:
<listener>
<listener-class>EnviadorServletListener</listener-class>
</listener>
acho que é só..
t+