专利名称:Java应用系统中实现定时任务的系统的制作方法
技术领域:
本发明涉及计算机软件领域,特别涉及一种Java应用系统中实现定时任 务的系统。
背景技术:
在使用Java的应用系统中,通常实现定时任务通过两种方式 一种是使 用Java开发工具集(Java Development Kit, JDK)自带的定时器(Timer)工 具实现,另一种是使用开放源代码组织(opensymphony)的Quartz定时任务 框架实现。
JDK自带的Timer能实现最简单的定时任务,以有规律的时间间隔来检查 任务(Task)类状态,这样就能按指定的重复执行时间和重复执行次数来触发 指定的Task类。
Quartz能实现比较完善的定时任务,其使用多个子线程来执行指定的Jab 类,只要开发人员的作业实现了 Jab类,就能在配置文件中用cron表达式来指 定任务的触发时间。
然而,上述两种实现定时任务的方式在使用时需要硬编码指定作业的触发 时间。每次任务更新都需要重新部署程序,且对任务执行监控时需要开发人员 在作业内部打印日志做监控,作业执行失败之后也不能及时通知相关工作人员 对问题进行处理,使用难度较大。另外,Ci:on表达式的编写较为困难,不能 得到有效的测试,容易出错。
发明内容
本发明要解决的技术问题在于,针对上述Java应用系统中定时任务编写 复杂、不易维护的问题,提供一种Java应用系统中实现定时任务的系统。
4本发明解决上述技术问题的技术方案是,提供一种Java应用系统中实现 定时任务的系统,其特征在于,包括
参数输入接口,用于通过图形用户界面接收指定作业的操作参数; 参数存储单元,用于存储数据;
定时任务创建单元,用于根据所述参数输入接口接收的操作参数为指定的 作业创建触发器,并将所述触发器的运行参数存储到到参数存储单元;
作业执行单元,用于读取所述参数存储单元中的触发器的运行参数并根据 所述运行参数使对应触发器触发对应作业运行。
在本发明所述的Java应用系统中实现定时任务的系统中,所述操作参数 包括触发器的名称、类型及时间参数;所述触发器的运行参数包括作业标识、 触发器名称、类型及时间参数。
在本发明所述的Java应用系统中实现定时任务的系统中,所述时间参数 包括作业开始时间、结束时间和/或运行间隔。
在本发明所述的Java应用系统中实现定时任务的系统中,所述参数输入 接口包括
cron表达式输入接口,用于接收cron表达式的输入;
所述定时任务创建单元从所述cron表达式输入接口中的cron表达式获得 触发器参数中的时间参数。
在本发明所述的Java应用系统中实现定时任务的系统中,所述参数输入 接口包括
时间输入接口,用于接收时间值的输入;
表达式测试单元,用于判断所述时间输入接口中的时间值是否包含于所述 cron表达式输入接口中的cron表达式中;
测试结果展示单元,用于在所述表达式测试单元确认所述时间输入接口中 的时间值包含于所述cron表达式输入接口中的的cron表达式中时显示第一信 息,否则显示第二信息。
在本发明所述的Java应用系统中实现定时任务的系统中,所述第一信息 包括指定作业在所述时间输入接口中的时间值处执行的信息。在本发明所述的Java应用系统中实现定时任务的系统中,所述第一信息 还包括指定作业在所述时间输入接口中的时间值之后的下一次执行的时间。
在本发明所述的Java应用系统中实现定时任务的系统中,所述参数输入 接口位于终端,所述参数存储单元、定时任务创建单元及作业执行单元位于服 务器,所述终端通过网络连接到服务器。
在本发明所述的Java应用系统中实现定时任务的系统中,所述参数输入 接口包括接收时间值的操作时间输入接口,所述定时任务创建单元根据所述 操作时间输入接口接收的时间值创建cron表达式并通过调用Quartz定时任务
框架生成触发器。
在本发明所述的Java应用系统中实现定时任务的系统中,还包括日志创 建单元,用于在每一作业被触发之前和之后对该作业进行拦截,并存储作业的 执行情况和执行时间数据。
本发明的Java应用系统中实现定时任务的系统,通过可视化界面接收作 业操作参数并根据该操作参数生成作业的触发器,简化了 Java应用系统中定 时任务的创建。从而使得程序的编制效率大大提高。
下面将结合附图及实施例对本发明作进一步说明,附图中
图1是本发明Java应用系统中实现定时任务的系统实施例的示意图2是本发明图1中参数输入接口实施例的示意图。
具体实施例方式
本发明提供了一站式的定时作业部署系统,通过将必须的功能写到系统层 来达到简单便捷的作业部署。具体地,本发明通过可视化的界面接收作业操作 参数并根据操作参数创建对应作业的触发器,从而简化了 Java应用系统中作 业定时任务的创建。该系统可以是Java应用系统开发工具中的一个操作项, 为Java应用系统中的每一个作业创建定时任务(一个作业可同时包括多个定 时任务)。如图1所示,是本发明Java应用系统中实现定时任务的系统的实施例的 示意图。该系统包括参数输入接口 11、定时任务创建单元12、参数存储单元 13以及作业执行单元14。其中上述各模块可应用一台服务器中;也可以用于 客户端-服务器系统中,即参数输入接口 ll位于终端(客户端),参数存储单 元13、定时任务创建单元12及作业执行单元14位于服务器,终端通过网络 (例如HTTP网络)连接到服务器。
参数输入接口 ll提供一个图形用户界面(GUI),使用者可通过该图形用 户界面直接输入指定作业的操作参数。上述操作参数可包括触发器的名称 (ID)、分类及时间参数(例如开始时间、结束时间和/或运行间隔等)及优先 级、描述、作业运行参数。具体地,该参数输入接口 11可以是一个弹出式窗 口,该弹出式窗口中可包括名称、类型及时间参数对话框,使用者可直接将相 应的操作参数输入到对话框中。其中时间参数输入框可以接收cron表达式输 入或时间值输入。
参数存储单元13用于存储数据,其可以是一个数据库。
定时任务创建单元12用于根据参数输入接口11接收的操作参数为指定的 作业创建触发器,并将该创建的触发器的运行参数存储到到参数存储单元13。 其中触发器的运行参数包括作业标识、触发器名称、类型及时间参数等。具体 地,定时任务创建单元12可通过调用Quartz定时任务框架并使用cron表达 式(该cron表达式可来自于参数输入接口 11直接输入或者根据输入的时间参 数生成)创建触发器,该触发器的中的参数即为参数输入接口 ll接收的操作 参数。
作业执行单元14用于读取参数存储单元13中的运行参数并根据运行参数 使对应触发器触发对应作业运行。例如当参数存储单元13中存储的一条数据 记录为作业A、触发器B、类型A (假设为在指定的时间点执行)、时间l, 则当到达时间1时,作业执行单元14使触发器1触发作业1执行。
如图2所示,是图1中参数输入接口 11的结构示意图。该参数输入接口 11包括cron表达式输入接口 111、时间输入接口 112、表达式测试单元113 以及测试结果展示单元114。cron表达式输入接口 111用于接收cron表'达式的输入。定时任务创建单 元12可从该cron表达式输入接口 111中获取输入的cron表达式,从而生成 触发器参数中的时间参数。
时间输入接口 112用于接收时间值的输入。该时间值为一个具体的时间 点,例如2006年3月10日12点整。
表达式测试单元113用于判断时间输入接口 112中的时间值是否包含于 cron表达式输入接口 111中的cron表达式中。该表达式测试单元113可通过 一个将cron表达式换算为时间值(或将时间值换算为cron表达式)的换算公 式实现。
测试结果展示单元114用于在表达式测试单元113确认时间输入接口 112 中的时间值包含于cron表达式输入接口 111中的的cron表达式中时显示第一 信息,否则显示第二信息。例如该第一信息包括指定作业在时间输入接口 111 中的时间值处执行和/或指定作业在时间输入接口 111中的时间值之后的下一 次执行的时间,此时表示cron表达式正确。而测试结果展示单元114显示的 第二信息,则可以为c:ron表达式错误的提示等。
此外,在本发明的系统中,还可包括一个日志创建单元(图中未示出)。 该曰志创建单元用于在每一作业被触发之前和之后对该作业进行拦截,并判断 作业的执行情况(例如执行作业的标识、执行过程中产生的数据等)可执行时 间等,然后存储作业的执行情况和执行时间数据。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护 范围应该以权利要求的保护范围为准。
权利要求
1、一种Java应用系统中实现定时任务的系统,其特征在于,包括参数输入接口,用于通过图形用户界面接收指定作业的操作参数;参数存储单元,用于存储数据;定时任务创建单元,用于根据所述参数输入接口接收的操作参数为指定的作业创建触发器,并将所述触发器的运行参数存储到到参数存储单元;作业执行单元,用于读取所述参数存储单元中的触发器的运行参数并根据所述运行参数使对应触发器触发对应作业运行。
2、 根据权利要求l所述的Java应用系统中实现定时任务的系统,其特征 在于,所述操作参数包括触发器的名称、类型及时间参数;所述触发器的运行 参数包括作业标识、触发器名称、类型及时间参数。
3、 根据权利要求1或2所述的Java应用系统中实现定时任务的系统,其 特征在于,所述时间参数包括作业开始时间、结束时间和/或运行间隔。
4、 根据权利要求3所述的Java应用系统中实现定时任务的系统,其特征在于,所述参数输入接口包括cron表达式输入接口,用于接收cron表达式的输入;所述定时任务创建单元从所述cron表达式输入接口中的cron表达式获得 触发器参数中的时间参数。
5、 根据权利要求4所述的Java应用系统中实现定时任务的系统,其特征在于,所述参数输入接口包括时间输入接口,用于接收时间值的输入;表达式测试单元,用于判断所述时间输入接口中的时间值是否包含于所述 cron表达式输入接口中的cron表达式中;测试结果展示单元,用于在所述表达式测试单元确认所述时间输入接口中 的时间值包含于所述cron表达式输入接口中的的cron表达式中时显示第一信 息,否则显示第二信息。
6、 根据权利要求5所述的Java应用系统中实现定时任务的系统,其特征在于,所述第一信息包括指定作业在所述时间输入接口中的时间值处执fi^的信 息。
7、 根据权利要求6所述的Java应用系统中实现定时任务的系统,其特征 在于,所述第一信息还包括指定作业在所述时间输入接口中的时间值之后的下 一次执行的时间。
8、 根据权利要求l所述的Java应用系统中实现定时任务的系统,其特征 在于,所述参数输入接口位于终端,所述参数存储单元、定时任务创建单元及 作业执行单元位于服务器,所述终端通过网络连接到服务器。
9、 根据权利要求l所述的Java应用系统中实现定时任务的系统,其特征 在于,所述参数输入接口包括接收时间值的操作时间输入接口,所述定时任 务创建单元根据所述操作时间输入接口接收的时间值创建cron表达式并通过 调用Quartz定时任务框架生成触发器。
10、 根据权利要求1所述的Java应用系统中实现定时任务的系统,其特 征在于,还包括日志创建单元,用于在每一作业被触发之前和之后对该作业进 行拦截,并存储作业的执行情况和执行时间数据。
全文摘要
本发明涉及一种Java应用系统中实现定时任务的系统,包括参数输入接口,用于通过图形用户界面接收指定作业的操作参数;参数存储单元,用于存储数据;定时任务创建单元,用于根据所述参数输入接口接收的操作参数为指定的作业创建触发器,并将所述触发器的运行参数存储到到参数存储单元;作业执行单元,用于读取所述参数存储单元中的触发器的运行参数并根据所述运行参数使对应触发器触发对应作业运行。本发明通过可视化界面接收作业操作参数并根据该操作参数生成作业的触发器,简化了Java应用系统中定时任务的创建。
文档编号G06F9/445GK101604242SQ20091010891
公开日2009年12月16日 申请日期2009年7月17日 优先权日2009年7月17日
发明者亮 徐, 梁中华, 思 陈 申请人:深圳市珍爱网信息技术有限公司