任务调度框架Quartz快速入门

Quartz是一个强大的开源任务调度库,适用于各种Java应用,支持集群和JTA服务。本文介绍了Quartz的重要API和概念,如Job、Trigger、JobDetail,以及如何创建和使用触发器。此外,还探讨了Job的状态和并发执行以及Quartz的持久化策略。
摘要由CSDN通过智能技术生成

Quartz是什么

Quartz是一个功能强大的开源任务调度库,几乎可以集成到任何Java应用程序中,无论是超小型的独立应用还是超大型电子商务系统。

它常用于企业级应用中:

  • Driving Process Workflow:当新订单下达,可以安排一个30分钟内触发的任务,检查订单状态。
  • System Maintenance:安排每个工作日晚上11点将数据库内容转储到文件的任务。
  • Providing reminder services:提供提醒服务。

Quartz还支持集群模式和对JTA服务。

Quartz中的重要API及概念

http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/

超重要API

Quartz设计理念:为什么设计Job和Trigger?

While developing Quartz, we decided that it made sense to create a separation between the schedule and the work to be performed on that schedule. This has (in our opinion) many benefits. For example, Jobs can be created and stored in the job scheduler independent of a trigger, and many triggers can be associated with the same job. Another benefit of this loose-coupling is the ability to configure jobs that remain in the scheduler after their associated triggers have expired, so that that it can be rescheduled later, without having to re-define it. It also allows you to modify or replace a trigger without having to re-define its associated job.

隔离schedule和schedule上执行的Job,优点是可见的:

可以独立于触发器创建作业并将其存储在作业调度程序中,并且许多触发器可以与同一作业相关联。这样的松耦合好处是什么?

最简单的Quartz使用案例

  • Scheduler 和调度程序交互的主要API生命周期从SchedulerFactoru创建它开始,到调用shutdown方法结束。一旦Scheduler创建,任何关于scheduling相关的事,他都为所欲为:添加、删除、列出所有的Jobs和triggers、暂停触发器等。在start方法之前,不会做任何事情。
  • Job 你希望被调度器调度的任务组件接口。当Job的触发器触发时,调度程序的工作线程将调用execute方法。该方法接收一个JobExecutionContext对象,为Job实例提供了丰富的运行时环境信息,比如:scheduler、trigger、jobDataMap、job、calendar、各种time等。
  • JobDetail 用于定义任务。JobDetail对象由Quartz客户端在将job加入Scheduler提供,也就是你的程序。它包含了不同为job设置的属性,还有可以用来为job储存状态信息的JobDataMap。注意它和Job的区别,它实际上是Job实例的属性。【Job定义如何执行,JobDetail定义有何属性】
  • Trigger 触发任务执行。触发器可能具有与之关联的JobDataMap,以便于将特定于触发器触发的参数传递给Job。Quartz提供了几种不同的触发器,SimpleTrigger和CronTrigger比较常用。如果你需要一次性执行作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值