Quartz学习一

Quartz是一个开源的任务调度库,今天初步学习了Quartz,并搭建了一个小的程序,程序中使用的是最新版的qartz-2.2.2

Job类

package example1;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloJob implements Job {
 
 private static Logger _log = LoggerFactory.getLogger(HelloJob.class);
 
 public HelloJob() {
  
 }
 
 @Override
 public void execute(JobExecutionContext arg0) throws JobExecutionException {
  _log.info("Hello World! - " + new Date());
 }
}

SimpleExample类

package example1;
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.DateBuilder.evenMinuteDate;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SimpleExample {
 public void run() throws Exception {
  Logger log = LoggerFactory.getLogger(SimpleExample.class);
  log.info("------ Initializing ------");
  SchedulerFactory sf = new StdSchedulerFactory();
  Scheduler sched = sf.getScheduler();
  log.info("------ Initializing Complete ------");
  Date runTime = evenMinuteDate(new Date());
  log.info("------- Scheduling Job  -------------------");
  JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();
  Trigger trigger = newTrigger().withIdentity("trigger1", "group1").startAt(runTime).build();
  sched.scheduleJob(job, trigger);
  log.info(job.getKey() + " will run at: " + runTime);
  sched.start();
  log.info("------- Started Scheduler -----------------");
  log.info("------- Waiting 65 seconds... -------------");
  try {
   // wait 65 seconds to show job
   Thread.sleep(65L * 1000L);
   // executing...
  } catch (Exception e) {
   //
  }
  log.info("------- Shutting Down ---------------------");
  sched.shutdown(true);
  log.info("------- Shutdown Complete -----------------");
 }
 public static void main(String[] args) throws Exception {
  SimpleExample example = new SimpleExample();
  example.run();
 }
}

注意让程序正常运行的话,需要在src目录下添加一个log4j.properties属性文件,其中文件配置如下

log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=firestorm.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.logger.com.codefutures=DEBUG

你可能感兴趣的:(Quartz学习一)