import org.apache.wicket.protocol.http.WebApplication; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.impl.StdSchedulerFactory; public class WicketApplication extends WebApplication { Scheduler scheduler; // Init @Override protected void init() { System.out.println( "---- init() ----" ); try{ this.scheduler = StdSchedulerFactory.getDefaultScheduler(); scheduler.start(); JobDetail job = new JobDetail("job1", "group1", MyJobClass.class); Trigger trigger = new SimpleTrigger("trigger1", "group1", 10, 1000*2); scheduler.scheduleJob(job, trigger); } catch( SchedulerException se ) { se.printStackTrace(); } } // Shutdown @Override protected void onDestroy() { System.out.println( "---- onDestroy() ----" ); try { scheduler.shutdown(); } catch( SchedulerException ex ) { ex.printStackTrace(); } } // ... }
/** * * @author Ondrej Zizka */ public class MyJobClass implements Job { private static int counter = 0; private static int inst = 0; public MyJobClass() { System.out.println( "INSTANTIATED "+ ++inst +" times!" ); } public void execute( JobExecutionContext context ) throws JobExecutionException { System.out.println( "EXECUTED "+ ++counter +" times!" ); //throw new UnsupportedOperationException("WTF."); } } // class MyJobClass