SSM整合Quartz

  1. parent工程的pom.xml添加相關jar包的版本管理
<!-- quartz任務調度框架 -->
			<dependency>
				<groupId>org.quartz-scheduler</groupId>
				<artifactId>quartz</artifactId>
				<version>${quartz.version}</version>
			</dependency>
			
			<dependency>
				 <groupId>org.quartz-scheduler</groupId>
				 <artifactId>quartz-jobs</artifactId>
				 <version>${quartz-jobs.version}</version>
			</dependency>
複製代碼

版本爲:java

<quartz.version>2.2.3</quartz.version>
	<quartz-jobs.version>2.2.3</quartz-jobs.version>
複製代碼
  1. web.xml中添加監聽:
<!-- Quarz定時任務監聽 -->
	<listener>
	  	<listener-class>com.idragonboat.timetask.TimingTaskSchedule</listener-class>
    </listener>
複製代碼
  1. 建立加載類
package com.idragonboat.timetask;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class TimingTaskSchedule implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		try {
			DemoTimeTask.run();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		try {
			DemoTimeTask.stop();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

複製代碼
  1. 建立定時任務:
package com.idragonboat.timetask;

import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class DemoTimeTask {
	 private static Scheduler sched; 
	  public static void run() throws Exception { 
	    System.out.println("定時任務啓動");
	    JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Jobs.class)
	        .withIdentity("myjob", "group1").build();
	    CronTrigger trigger =(CronTrigger) TriggerBuilder.newTrigger()
	        .withIdentity("trigger", "group1")
	        .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 ? * *"))//0 0 0 ? * *
	        .build();
	    SchedulerFactory sfact = new StdSchedulerFactory();
	    Scheduler schedule = sfact.getScheduler();
	    schedule.start();
	    schedule.scheduleJob(jobDetail, trigger);
	  }
	  
	  //中止 
	  public static void stop() throws Exception{ 
		  sched.shutdown(); 
	  } 
}

複製代碼

其中Jobs.class爲具體的業務實現類。web

  1. 建立業務類
package com.idragonboat.timetask;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class Jobs implements Job{
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
	    Date date=new Date();
	    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    System.out.println("Time:"+sf.format(date));
	    System.out.println("Hello");
	 
	  }
}

複製代碼
相關文章
相關標籤/搜索