package com.lz.quartz.job;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class HelloJob implements Job {
/**
* Job的实现类中的字符串 添加setter方法,对应给JobDataMap中添加key,Quartz框架默认的JobFactory实现类
* 在初始化Job接口的实例时,会自动的调用这些setter方法
* 注意:如果遇到同名的key,如本例中:
* Trigger中的usingJobData("message","哈哈哈")会覆盖
* JobDetail中的usingJobData("message","嘿嘿嘿")
*
*/
private String message;
public void setMessage(String message) {
this.message = message;
}
public HelloJob(){
System.out.println("quartz 每次任务执行 都会创建一个新的HelloJob 对象实例");
}
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//从setter方法 读取message的值
System.out.println(message);
}
}
package com.lz.quartz.main;
import com.lz.quartz.job.HelloJob;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class HelloJobMain {
public static void main(String[] args) {
try {
//1:调度器Schedule
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//2:任务实例 JobDeatil hellojob任务名称 group1任务分组名称
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).
withIdentity("hellojob","group1").
usingJobData("message","嘿嘿嘿").
build();
System.out.println("job的任务的名称:"+jobDetail.getKey().getName());
System.out.println("job的任务组的名称:"+jobDetail.getKey().getGroup());
System.out.println("job的任务class:"+jobDetail.getJobClass().getName());
//3:触发器Trigger' trigger1触发器名称 group1触发器分组名 每5S执行一次打印 startNow马上启动触发器
Trigger trigger = TriggerBuilder.newTrigger().
withIdentity("trigger1","group1").startNow().
withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).
usingJobData("message","哈哈哈").
build();
//让调度器 使触发器和任务关联
scheduler.scheduleJob(jobDetail,trigger);
//启动任务调度器
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
输出结果:
job的任务的名称:hellojob
job的任务组的名称:group1
job的任务class:com.lz.quartz.job.HelloJob
quartz 每次任务执行 都会创建一个新的HelloJob 对象实例
哈哈哈
quartz 每次任务执行 都会创建一个新的HelloJob 对象实例
哈哈哈
Process finished with exit code -1