黑马程序员技术交流社区

标题: Quartz 定时任务 [打印本页]

作者: 2048    时间: 2018-6-26 08:59
标题: Quartz 定时任务
1.什么是 Quartz 框架
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
2.配置文件 applicationContext_job.xml 各个属性作用
(1)、Job:表示一个任务(工作),要执行的具体内容。
(2)、JobDetail:表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容,另外JobDetail 还包含了这个任务调度的方案和策略。
(3)、Trigger:代表一个调度参数的配置,什么时候去调。
(4)、Scheduler:代表一个调度容器,一个调度容器中可以注册多个 JobDetail 和 Trigger。当 Trigger 与JobDetail 组合,就可以被 Scheduler 容器调度了。
3.Cron 表达式详解
Cron 表达式是一个字符串,字符串以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义。
域:
Seconds(秒):可出现", - * /"四个字符,有效范围为 0-59 的整数。
Minutes(分钟):可出现", - * /"四个字符,有效范围为 0-59 的整数 。
Hours(小时):可出现", - * /"四个字符,有效范围为 0-23 的整数 。
DayofMonth(日 of 月):可出现", - * / ? L W C"八个字符,有效范围为 0-31 的整数。
Month(月):可出现", - * /"四个字符,有效范围为 1-12 的整数。
DayofWeek(日 of 星期):可出现", - * / ? L C #"四个字符,有效范围为 1-7 的整数 1 表示星期天,2 表示星期一, 依次类推。
Year(年):可出现", - * /"四个字符,有效范围为 1970-2099 年。
4.如何监控 Quartz 的 job 执行状态:运行中,暂停中,等待中?
通过往表(新建一个操作日志表)里插入日志的形式:
1)运行中:通过 JobListener 监听器来实现运行时更改表信息。
2)暂停中:调用 scheduler.pauseTrigger()方法时,更改表中 job 信息。
3)等待中:新添加的 job 默认给其等待中的状态,也是更改表中的 job 信息 但是上面这种形式的麻烦之处是得频繁的往表里插入数据。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2