quartz定时任务使用注意事项

quertz是一个定时任务框架,支持使用基于数据库的分布式

现在这直接来看一下这个框架该如何使用吧

体系架构

  • Job
    是⼀个接⼝,只定义⼀个⽅法execute(JobExecutionContext context),在实现接⼝的execute
    ⽅法中编写所需要定时执⾏的Job(任务), JobExecutionContext类提供了调度应⽤的⼀些信息。
    Job运⾏时的信息保存在JobDataMap实例中。
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.Date;
/**
 - 任务内容
*/
public class MyJob implements Job{
 public void execute(JobExecutionContext jobExecutionContext) throws
JobExecutionException {
 // 输出系统当前时间
 System.out.println(new Date());
构建调度任务
	 }
}
  • 2JobDetail
    JobDetail 定义的是任务数据,⽽真正的执⾏逻辑是在Job中。sheduler每次执⾏,都会根据
    JobDetail创建⼀个新的Job实例。
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
/**
* 构建调度任务
*/
public class QuartzTest {
 	public static void main(String[] args) throws SchedulerException {
 // 获取调度器
 	Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
 // 包装任务内容
 	JobDetail job = newJob(MyJob.class)
 					.withIdentity("job1", "group1")
 					.build();
 // 定义触发器
 Trigger trigger = newTrigger()
 				.withIdentity("trigger1", "group1")
 				.startNow()
 				.withSchedule(simpleSchedule()
 				.withIntervalInSeconds(40)
 .				repeatForever())
 				.build();
 // 组装任务
 scheduler.scheduleJob(job, trigger);
 // 启动调度器 开始调度
 scheduler.start();
 }
}

Trigger是什么
  Quartz中的触发器用来告诉调度程序作业什么时候触发,即Trigger对象是用来触发执行job的。

JobKey:表示job实例的标识,触发器被触发时,该指定的job实例会执行

StartTime:表示触发器的时间表 首次被触发的时间,值类型是Java.util.Date

EndTime:指定触发器的不再触发的时间,它的值类型是Java.util.Date
https://www.cnblogs.com/qlqwjy/p/8721963.html可看

Scheduler
代表⼀个Quartz的独⽴运⾏容器, Trigger和JobDetail可以注册到Scheduler中, 两者在
Scheduler中拥有各⾃的组及名称, 组及名称是Scheduler查找定位容器中某⼀对象的依据,
Trigger的组及名称必须唯⼀, JobDetail的组和名称也必须唯⼀(但可以和Trigger的组和名称相
同,因为它们是不同类型的)。Scheduler定义了多个接⼝⽅法, 允许外部通过组及名称访问和
控制容器中Trigger和JobDetail。
JobBulider
⽤于定义/构建已经定义了Job实例的JobDetail实例

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值