定时任务设计(二):Quartz

本文介绍了Quartz的核心接口和类,如Scheduler、Job、Trigger等,并阐述了Quartz任务调度设计,强调了Job与Trigger的解耦。此外,还讨论了Quartz的配置、集群实现,包括负载均衡、故障转移策略以及数据模型和线程模型的关键点。
摘要由CSDN通过智能技术生成

核心接口和类

Scheduler接口:调度器接口,包含任务的调度管理;

Job接口:自定义的“定时程序”实现此接口的
void execute(JobExecutionContext arg0)方法,Job还有一类为有状态的StatefulJob接口,如果我们需要在上一个作业执行完后,根据其执行结果再进行下次作业的执行,则需要实现此接口。

JobDetail类:具体某个定时程序的详细描述,包括Name,Group,JobDataMap等。

JobDataMap类:用于描述一个作业的参数,参数可以为任何基本类型例如String,float等,也可为某个对象的引用.

Trigger抽象类:调度类(Scheduler)在时间到时调用此类,再由trigger类调用指定的定时程序。
Quertz中提供了两类触发器为:
- SimpleTrigger
简单的定时功能
- CronTrigger
使用表达式来描述定时功能,因此适用于比较复杂的定时描述,
例如每个月的最后一个周五,每周的周四等。

JobExecutionContext类:定时程序执行的run-time的上下文环境,用于得到当前执行的Job的名字,配置的参数等。

JobListener,TriggerListener接口:用于监听触发器状态和作业扫行状态,在特写状态执行相应操作。

Quartz任务调度设计:

这里写图片描述

  • Job与Trigger解藕,

在上一个资源v1.0基础上的增强和改进! 1、解压。解压得到名为"schedule"的目录 2、打开界面。双击里面的schedule v1.1.html打开 3、解除限制。单击浏览器弹出框“允许阻止的内容”,可以看到效果 功能说明: 界面采用bootstrap和JEasyUI技术实现,提供三种任务运行规则:一次性、周期性、自定义 1、一次性(i:立即运行;ii:在规定的时间刻运行) 2、周期性(i:按小时;ii:按天 iii:按周; iv:按月(日);v: 按月(星期) ) 3、自定义(自定义功能,用户可以在前台随意定制执行计划,只要符合spring schedule cronExpression语法) 使用说明: 一: /* line 96 */ var action = "edit";//edit,add,view action用来指定用户动作,新增、编辑(修改)、查看 : /* line 108 */ var cronExpression = "13 12 11 1 11 ? 2017";//when action is edit or view this value is useful cronExpression 的建意值: cronExpression=""; // action为空时 cronExpression =$("cronExpression");//当action为edit或view时, 把后面传过来的达式值赋给cronExpression,界面会自动判断该如何展示 三: /* line 628 */ $("#sbmt").click(function() {//按钮事件....} 单按钮提交事件相关代码自已根据实际情况替换修改。 亮点: i:日期选择功能使用JEasyUI的datetime,并在选择框上加了限制,不能选择早于当前的日期 ii:时间选择功能使用JEasyUI的spinner实现 iii: 自定义功能用户可以随意定制执行计划 iv:采用bootstrap的pills实现tab(选项卡)功能,界面友好 v: 打开修改界面时界面会根据后台cronExpression值智能展示tab和radio及单值。规则:优先顺序:一次性、周期性、自定义 vi: 提交前javascript会对cronExpression进行严格的规则验证 vii: 使用javascript正则达式实现各定时分类的匹配展示 viii: 强兼容性,集成时能与其它css样式文件兼容,尽量把schedule.html内部样式中的样式放在目标集成界面中样式的后面避免覆盖 另:内附schdule Spring后台核心代码供后台开发参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值