Java——Quartz作业任务调度框架(一)

由于项目需求,想要定时请求某个接口,或调用某个函数。于是考虑到使用定时器。

java常用的定时器

  1. Timer java.util.Timer + java.util.TimerTask
  2. @Scheduled注解 org.springframework.sprig-context-support
  3. 线程方式 Thread.sleep()
  4. ScheduledExecutorService java.util.concurrent.ScheduledExecutorService
  5. Quartz框架 Quartz官网

Quartz框架可以执行上万个任务

简单使用Quartz

  1. maven 导入quartz和quartz-jobs包
  2. 调度器。获取一个实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
  1. 任务类。任务需实现job接口
public class MyJob implements org.quartz.Job {
    public void execute(JobExecutionContext context) throws JobExecutionException{}
}
  1. 任务实例对象。任务实例对象的创建
JobDetail jobDetail = JobBulider.newJob(MyJob.class).withIdentity("job1","group1").build();
  1. 触发器。
Trigger trigger =TriggerBulider.newTrigger()
    .withIdentity("trigger1","group1")
    .startNow()
    .withSchedule(
         SimpleScheduleBuilder.simpleSchedule()
         .withIntervalInSeconds(5)
         .repeatForever())
    .build();
  1. 调度。关联任务对象和触发器,启动实例
scheduler.scheduleJob(jobDetail,trigger)
scheduler.start();
// scheduler.shutdown();

PS:报错org.quartz.SchedulerConfigException:Thread count must be > 0
需要在resource中新建并配置quartz.properties配置文件:

org.quartz.scheduler.instanceName=MyScheduler
org.quartz.threadPool.threadCount=3
org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore

Quartz设计模式

Builder模式
Factory模式
组件模式
链式编程

Quartz核心概念

  1. 任务类Job:Job是想要实现的任务类,必须实现org.quartz.job接口,且需实现接口定义的execute()方法。
  2. 任务实例JobDetail:JobDetail是一个可执行的工作,它本身可能是有状态的。
  3. 触发器Trigger:Trigger触发器代表一个调度参数的配置,什么时候去调。频率和时间的设定,Trigger主要包含两种SimpleTrigger和CronTrigger两种。
  4. 调度器Scheduler:Scheduler是一个计划调度器容器,容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面的每个JobDetail都会根据trigger设定的时间按部就班自动去执行。当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可以伴随容器启动而调度执行了。scheduler是个容器,容器中有一个线程池,用来并行调度执行每个作业,这样可以提高容器效率。调度器拥有start、stop、pause、resume(启动、停止、暂停、恢复)等方法

这一篇中,拥有一个简单使用Quartz的例子,
下一篇中,将包括对Quartz的一些详细使用。


欢迎指正,随时修改~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值