scheduletask任務調度


1.導入jar包

2.創建entity、

package cn.happy.entity;

public class Plan {
    //時間
    private String date;
    //任務
    private String task;
    
    public Plan() {

    }

    public Plan(String date, String task) {
        this.date = date;
        this.task = task;
    }
  
    @Override
    public String toString() {
        return "Plan [date=" + date + ", task=" + task + "]";
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getTask() {
        return task;
    }

    public void setTask(String task) {
        this.task = task;
    }
}

3、創建service

package cn.happy.service;

import java.util.ArrayList;
import java.util.List;

import cn.happy.entity.Plan;

public class RemindService {
    
    
    public void print(String name){
        List<Plan> list = getPlan(name);
        System.out.println(name+"的提醒信息\n");
        for (Plan plan : list) {
            System.out.println(plan);
        }
    }
     public void printPlan(String userName){
           List<Plan> plansForToday = getPlansForToday(userName);
            System.out.print(userName + "的提醒信息:\n");
            for(Plan plan:plansForToday){
                System.out.print(plan +"\n");
            }
       }
       
       public List<Plan> getPlansForToday(String userName){
            //模擬數據庫查詢,僅為說明問題
            List<Plan> list = new ArrayList<Plan>();
            list.add(new Plan("2003-8-9 9:00","研討會 | 地點:會議室C01"));
            list.add(new Plan("2003-8-9 14:00","匯報 | 地點:總裁辦公室"));
            return list;
        }
       
       public List<Plan> getPlan(String name){
           List<Plan> list = new ArrayList<Plan>();
           list.add(new Plan("2016年12月18日10:59", "研討會"));
           list.add(new Plan("2016-12-18 11:01","匯報"));
           return list;
       }
}

4、創建quartz

package cn.happy.quartz;

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

import cn.happy.service.RemindService;
/**
 * 工作調度類  quartz 類 需要實現 job接口
 * @author SLEEP
 *
 */
public class RemindJob implements Job {
	//注入service對象
	RemindService service =new RemindService();
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		service.printPlan("見見");
	}
	
	
	

}

5.創建測試類(關鍵)

package cn.happy.test;

import java.util.Date;

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;

import cn.happy.quartz.RemindJob;
/**
 * 測試類
 * 使用quartz類
 * @author SLEEP
 *
 */
public class Test {
    
    public void doRemind() throws SchedulerException, InterruptedException {
    
        
        //創建一個任務    
        JobDetail  job= JobBuilder.newJob(RemindJob.class)  //
                         .withIdentity("job1", "group1")
                         .build();    
        //創建一個觸發器
         Trigger trigger = TriggerBuilder.newTrigger() 
                 .withIdentity("myTrigger", "myTriggerGroup")
                 .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                     .withIntervalInSeconds(5)
                     .repeatForever())
                 .startAt(new Date(System.currentTimeMillis() + 1000))
                 .build();
         //創建調度工廠
         SchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
         //創建一個調度者
         Scheduler scheduler = stdSchedulerFactory.getScheduler();
         //注冊並進行調度
         scheduler.scheduleJob(job,trigger);
         //啟動調度
         scheduler.start();
        //創建調度者工廠
        SchedulerFactory sfc = new StdSchedulerFactory();
        //創建一個調度者
        Scheduler sched = sfc.getScheduler();
        //注冊並進行調度
        sched.scheduleJob(job, trigger);
        //啟動調度
        sched.start();
        /*//sleep10s
        Thread.sleep(10000);
        //關閉調度
        sched.shutdown();*/
    }
    
    /**
     * 
     */
    public static void main(String[] args) {
        try{
            Test testJob = new Test();
            testJob.doRemind();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM