api调用demo1
package cn.xiniu.quartz;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
/**
* @ClassName: Demo1
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:35
* @Verson 1.0
**/
public class Demo1 {
public static void main(String[] args) {
try {
// 获取scheduler实例对象
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 开始
scheduler.start();
// 结束
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}
api调用demo2
/**
* @ClassName: Demo1
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:35
* @Verson 1.0
**/
public class Demo2 {
//scheduler实例化后,可以启动(start)、暂停(stand-by)、停止(shutdown)。
//注意:
//scheduler被停止后,除非重新实例化,否则不能重新启动;
//只有当scheduler启动后,trigger才会被触发(job才会被执行)。//处于暂停状态不会被触发
public static void main(String[] args) throws SchedulerException {
//获取工厂
SchedulerFactory schedFact = new StdSchedulerFactory();
//获取Scheduler实例
Scheduler sched = schedFact.getScheduler();
//开始
sched.start();
// 定义job
JobDetail job1 = newJob(HelloJob.class)
.withIdentity("myJob", "group1")
.build();
// 定义触发器
Trigger job1Trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
//间隔时间
.withIntervalInSeconds(1)
.repeatForever())
.build();
//执行job,使用的trigger触发器
sched.scheduleJob(job1, job1Trigger);
}
}
---------------
/**
* @ClassName: HelloJob
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:56
* @Verson 1.0
**/
public class HelloJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("时间:"+new Date().getSeconds() +"--->HelloJob");
}
}
-----------
输出:
时间:50--->HelloJob
时间:51--->HelloJob
时间:52--->HelloJob
时间:53--->HelloJob
时间:54--->HelloJob
时间:55--->HelloJob
JobDataMap:job实例增加属性或配置
package cn.xiniu.quartz;
import cn.xiniu.quartz.jobs.HelloJob;
import cn.xiniu.quartz.jobs.HelloJob2;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
/**
* @ClassName: Demo1
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:35
* @Verson 1.0
**/
public class Demo3 {
//scheduler实例化后,可以启动(start)、暂停(stand-by)、停止(shutdown)。
//注意:
//scheduler被停止后,除非重新实例化,否则不能重新启动;
//只有当scheduler启动后,trigger才会被触发(job才会被执行)。//处于暂停状态不会被触发
public static void main(String[] args) throws SchedulerException {
//获取工厂
SchedulerFactory schedFact = new StdSchedulerFactory();
//获取Scheduler实例
Scheduler sched = schedFact.getScheduler();
//开始
sched.start();
// 定义job
JobDetail job1 = newJob(HelloJob2.class)
.withIdentity("myJob", "group1")
//JobDataMap:job实例增加属性或配置
.usingJobData("key1", "你好")
.usingJobData("key2", "我好")
.build();
// 定义触发器
Trigger job1Trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
//间隔时间
.withIntervalInSeconds(1)
.repeatForever())
.build();
//执行job,使用的trigger触发器
sched.scheduleJob(job1, job1Trigger);
}
}
-------------
package cn.xiniu.quartz.jobs;
import org.quartz.*;
import java.util.Date;
/**
* @ClassName: HelloJob
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:56
* @Verson 1.0
**/
public class HelloJob2 implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobKey key = context.getJobDetail().getKey();
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String v1 = dataMap.getString("key1");
String v2 = dataMap.getString("key2");
System.err.println("key--> " + key );
System.err.println("key1--> " + v1 );
System.err.println("key2--> " + v2 );
System.out.println("时间:"+new Date().getSeconds() +"--->HelloJob");
}
}
-------------
输出
key--> group1.myJob
key1--> 你好
key2--> 我好
时间:12--->HelloJob
key--> group1.myJob
key1--> 你好
key2--> 我好
时间:13--->HelloJob
key--> group1.myJob
key1--> 你好
key2--> 我好
时间:14--->HelloJob
key--> group1.myJob
key1--> 你好
key2--> 我好
Process finished with exit code -1
Simple Trigger
package cn.xiniu.quartz;
import cn.xiniu.quartz.jobs.HelloJob2;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
/**
* @ClassName: Demo1
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:35
* @Verson 1.0
**/
public class Demo4 {
//scheduler实例化后,可以启动(start)、暂停(stand-by)、停止(shutdown)。
//注意:
//scheduler被停止后,除非重新实例化,否则不能重新启动;
//只有当scheduler启动后,trigger才会被触发(job才会被执行)。//处于暂停状态不会被触发
public static void main(String[] args) throws SchedulerException {
//获取工厂
SchedulerFactory schedFact = new StdSchedulerFactory();
//获取Scheduler实例
Scheduler sched = schedFact.getScheduler();
//开始
sched.start();
// 定义job
JobDetail job1 = newJob(HelloJob2.class)
.withIdentity("myJob", "group1")
//JobDataMap:job实例增加属性或配置
.usingJobData("key1", "你好")
.usingJobData("key2", "我好")
.build();
// 定义触发器
Trigger job1Trigger = newTrigger()
.withIdentity("myTrigger", "group1")
//15秒后执行
.startAt(DateBuilder.futureDate(15, DateBuilder.IntervalUnit.SECOND))
//开始20秒后结束
.endAt(DateBuilder.futureDate(25, DateBuilder.IntervalUnit.SECOND))
.withSchedule(simpleSchedule()
//间隔1秒
.withIntervalInSeconds(1)
//重复无穷次数
//.repeatForever()
//重复10次
.withRepeatCount(10))
.build();
//执行job,使用的trigger触发器
sched.scheduleJob(job1, job1Trigger);
}
}
CronTrigger
package cn.xiniu.quartz;
import cn.xiniu.quartz.jobs.HelloJob2;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
/**
* @ClassName: Demo1
* @Description 请描述下该类是做什么的
* @Author feizhou
* @Date 2020/6/7 0007 下午 12:35
* @Verson 1.0
**/
public class Demo5 {
//scheduler实例化后,可以启动(start)、暂停(stand-by)、停止(shutdown)。
//注意:
//scheduler被停止后,除非重新实例化,否则不能重新启动;
//只有当scheduler启动后,trigger才会被触发(job才会被执行)。//处于暂停状态不会被触发
public static void main(String[] args) throws SchedulerException {
//获取工厂
SchedulerFactory schedFact = new StdSchedulerFactory();
//获取Scheduler实例
Scheduler sched = schedFact.getScheduler();
//开始
sched.start();
// 定义job
JobDetail job1 = newJob(HelloJob2.class)
.withIdentity("myJob", "group1")
//JobDataMap:job实例增加属性或配置
.usingJobData("key1", "你好")
.usingJobData("key2", "我好")
.build();
// 定义触发器
Trigger job1Trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.withSchedule(cronSchedule("0/2 59 15 * * ?"))
.build();
//执行job,使用的trigger触发器
sched.scheduleJob(job1, job1Trigger);
}
}