Thứ Năm, 26 tháng 9, 2013

Demo Job Scheduler sử dụng Quartz

maven dependences

    log4j
    log4j
    1.2.17
   
   
    org.quartz-scheduler
    quartz
    2.0.2
   

Xây dựng lớp TestJob implement Job của Quartz. lớp này để thực hiện một công việc mà ta cần làm sau một khoảng thời gian xác định. Cụ thể công việc ở đây là in ra dòng thông báo.
package vn.diepviends.job;

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class TestJob implements Job {
 private Logger log = Logger.getLogger(TestJob.class);
 public void execute(JobExecutionContext arg0) throws JobExecutionException {
  log.debug("Test job run successfully after 2s");    
 }

}
Trong lớp chính cần gọi ta cài đặt khoảng thời gian lặp lại cho job và gọi TestJob class để thực hiện
package vn.diepviends.job;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class JobScheduler {
 public static void main(String[] args) {
  try {

   // chi ra job can thuc hien
   JobDetail job = JobBuilder.newJob(TestJob.class)
     .withIdentity("testJob").build();

   // qui dinh thoi gian la 2s, lap lai mai mai
   Trigger trigger = TriggerBuilder
     .newTrigger()
     .withSchedule(
       SimpleScheduleBuilder.simpleSchedule()
         .withIntervalInSeconds(2).repeatForever())
     .build();

   // start
   SchedulerFactory schFactory = new StdSchedulerFactory();
   Scheduler sch = schFactory.getScheduler();
   sch.start();
   sch.scheduleJob(job, trigger);   

  } catch (SchedulerException e) {
   e.printStackTrace();
  }
 }
}
Và đây là kết quả khi run lớp JobScheduler


Cấu trúc chương trình:

Không có nhận xét nào:

Đăng nhận xét