02_SimpleTrigger

【SimpleTrigger的构造方法】

SimpleTrigger(String name,String group); //指定Trigger的所属组 和 名称
SimpleTrigger(String name, String group, Date startTime); //指定Trigger的所属组 和、名称、触发时间
SimpleTrigger(String name, String group, Date startTime, Date endTime, int repeatCount, long repeatInterval); //指定Trigger的所属组 和、名称、触发时间、结束时间、重复次数、时间间隔
SimpleTrigger(String name, String group, String jobName, String jobGroup, Date startTime, Date endTime, int repeatCount, long repeatInterval); //jobGroup和JobName使该Trigger和Scheduler中的某个任务关联起来

【工程截图】

【SimpleJob.java】

package com.higgin.simple;

import java.util.Date;

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

public class SimpleJob implements Job{
    public SimpleJob() {
        System.out.println("---SimpleJob构造方法---");  //测试每次调用是否会重新创建一个新的SimpleJob类
    }
    @Override
    public void execute(JobExecutionContext jobCtx) throws JobExecutionException {
        System.out.println(jobCtx.getTrigger().getName()+"----任务开始执行了----"+(new Date()));
    }

}

【SimpleTriggerRunner.java】

package com.higgin.simple;

import java.util.Date;

import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;

public class SimpleTriggerRunner {
    
    public static void main(String[] args) {
        try{
            //创建一个JobDetail,封装SimpleJob,同时指定SimpleJob在Scheduler中的所属组合名称,组名:jGroup1,名称:job1_1
            JobDetail jobDetail = new JobDetail("job1_1","jGroup1",SimpleJob.class); 
            
            //创建一个SimpleTrigger实例,指定该SimpleTrigger在Scheduler中的所属组及名称,组名:tGroup1,名称:trigger1_1
            SimpleTrigger simpleTrigger = new SimpleTrigger("trigger1_1","tGroup1");
            simpleTrigger.setStartTime(new Date());
            simpleTrigger.setRepeatCount(5);   //重复执行6次
            simpleTrigger.setRepeatInterval(2000);  //每次执行之间间隔2秒
            
            SchedulerFactory schedulerFactory = new StdSchedulerFactory();//通过StdSchedulerFactory获取一个scheduler实例(注意是StdSchedulerFactory!)
            Scheduler scheduler = schedulerFactory.getScheduler();  
            scheduler.scheduleJob(jobDetail, simpleTrigger);  //1.将JobDetail和Trigger注册到scheduler中 2.用Trigger对JobDetail中的任务进行调度
            scheduler.start(); //scheduler启动后,Trigger将定期触发并执行SimpleJob中的execute()方法
            
        }catch(SchedulerException e){
            e.printStackTrace();
        }
    }

}

【运行结果】

可以看出,每次都会实例化新的SimpleJob(构造方法看出),并每隔2s执行一次,设置simpleTrigger.setRepeatCount(5); 但会执行6次。

原文地址:https://www.cnblogs.com/HigginCui/p/6625829.html