CN107193579A - 计划任务的实现方法及装置 - Google Patents
计划任务的实现方法及装置 Download PDFInfo
- Publication number
- CN107193579A CN107193579A CN201710195260.2A CN201710195260A CN107193579A CN 107193579 A CN107193579 A CN 107193579A CN 201710195260 A CN201710195260 A CN 201710195260A CN 107193579 A CN107193579 A CN 107193579A
- Authority
- CN
- China
- Prior art keywords
- field
- benchmark
- cron
- cron expression
- check box
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种计划任务的实现方法及装置,其中的方法包括:配置基准字段下拉列表;监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。本发明可减少出错率、简化cron视图。
Description
技术领域
本发明涉及计算机技术领域,具体涉及计划任务的实现方法及装置。
背景技术
计划任务(cron),是任务在约定的时间执行已经计划好的工作。例如,可以在配置文件中约定每天早上4点将httpd服务器重新启动,每天晚上10点种给某个邮箱发一封信,都是计划任务。
cron表达式是用来表示任务在何时执行的一种表达式,它通常用于配置计划任务的触发时间。cron表达式是六个或者七个子表达式(字段)组成的字符串,而子表达式(字段)之间用空格隔开。例如,一种典型的cron表达式字段包括:秒、分、时、日、周、月、年。
目前设计的cron表达式都需要用户手动填写各个字段的值,从而完成定时设置。这种用户手动编写cron表达式的方式,出错率较高,例如输入了中文问号(?)而造成的表达式解析失败。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的计划任务的实现方法及装置。
依据本发明的一个方面,提供一种计划任务的实现方法,包括:配置基准字段下拉列表;监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。
优选的,所述获取所确定的所述cron表达式格式中各个字段的复选框的值,生成cron表达式,包括:对所确定的所述cron表达式格式中各个字段的复选框的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的复选框的一个或多个值;根据各个字段的复选框的一个或多个值,生成cron表达式。
优选的,所述根据各个字段的复选框的值,生成cron表达式,包括:针对所确定的所述cron表达式格式中各个字段,建立空的数组;基于基准字段和发生onchange事件的各个字段的一个或多个值,更新所述数组的值;将所述数组拼接为字符串,得到所述cron表达式。
优选的,所述预先设置的基准字段与cron表达式格式的对应关系,包括:基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。
优选的,基于JavaScript内置的下拉列表控件,配置所述基准字段下拉列表,以及,基于JavaScript内置的复选框控件,配置下级字段的复选框。
根据本发明的另一个方面,提供一种计划任务的实现装置,包括:基准字段配置单元,用于配置基准字段下拉列表;基准字段监控单元,用于监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;确定单元,用于基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;表达式生成单元,用于获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。
优选的,所述表达式生成单元具体用于:对所确定的所述cron表达式格式中各个字段的复选框的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的复选框的一个或多个值;以及,根据各个字段的复选框的一个或多个值,生成cron表达式。
优选的,所述表达式生成单元具体用于:针对所确定的所述cron表达式格式中各个字段,建立空的数组;基于基准字段和发生onchange事件的各个字段的值,更新所述数组的值;将所述数组拼接为字符串,得到所述cron表达式。
优选的,还包括:设置单元,用于基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。
优选的,基于JavaScript内置的下拉列表控件,配置所述基准字段下拉列表,以及,基于JavaScript内置的复选框控件,配置下级字段的复选框。
可见,本发明针对现有技术的手动输入各个字段值的方式进行改进,通过下拉列表及复选框的方式,用户仅需对各个字段的选项进行简单选择即可,由于不需要用户输入,从而避免用户输入错误,由此减少出错率;另外,由于仅显示选定基准字段对应的且有触发事件的下级字段,因此,可以更加直观、简洁的展示定时任务触发时间视图;而且,本发明可通过JavaScript脚本来实现,因此能够很方便的与现有的一些框架进行整合。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明的一个实施例提供的计划任务的实现方法流程图;
图2示出了根据本发明的一个实施例提供的计划任务的实现方法中cron表达式视图示意图;
图3示出了根据本发明的另一个实施例提供的计划任务的实现方法流程图;
图4示出了根据本发明的另一个实施例提供的计划任务的实现方法中cron表达式视图示意图;
图5示出了根据本发明一个实施例提供的计划任务的实现装置结构示意图;
图6示出了根据本发明另一个实施例提供的计划任务的实现装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有技术中在cron输入框中手动输入各个字段值而存在的出错率高的问题,本发明实现一种可视化的cron表达式,由于仅需用户选择确定各个字段的值,而不需要用户手段输入,从而可以极大地降低出错的概率,同时还可以根据已有的cron表达式将任务的触发时间直观的显示到界面上。
参考图1,为根据本发明的一个实施例提供的计划任务的实现方法流程图,包括如下步骤S101-S104。
S101:配置基准字段下拉列表。
本领域技术人员了解,一个cron表达式有至少6个(也可能7个)有空格分隔的字段(时间元素)。
例如,时间元素按顺序依次为:
秒(0~59);
分(0~59);
时(0~23);
天(月)(0~31,需要考虑月的天数);
周(星期几)(1~7:SUN,MON,TUE,WED,THU,FRI,SAT);
月(0~11);
年(例如1970-2099)。
本发明中,上述任何一个时间元素都可以作为基准字段,因此,在基准字段下拉列表配置中,将上述各个时间元素配置为下拉列表的各个选项。
具体实现中,可以基于JavaScript下拉列表控件,实现基准字段下拉列表的配置。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
JavaScript被广泛的用于网页设计和网页特效制作等。几乎所有的网页都会使用JavaScript,例如表单验证,动画,页面样式控制等等。在网页的开发中,已经内置了很多基础的控件了,比如输入框、下拉列表、复选框等等,并且些基础的控件也提供了一些事件机制可以让JavaScript来做出对应的响应。因此,本发明可以基于这些事件来开发出非常丰富的功能,同时,可以将一些易出错的文本输入操作简化成界面化的选择操作,从各个方面来扩展这些基础的控件来满足用户的需求。
S102:监控基准字段下拉列表的触发事件,确定当前被选定的基准字段。
例如,通过监控基准字段下拉列表的onchange事件,当基准字段下拉列表的选项发生变化时,可确定出当前被用户选定的基准字段。其中,onchange事件是在客户端改变输入控件的值,比如一个textbox,会触发这个事件,也即,onchange在元素值改变时触发。
S103:基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式。
本发明中,需要预先设置的基准字段与cron表达式格式的对应关系,具体设置过程包括:基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的下拉列表,从而完成各个基准字段所对应的cron表达式格式的设置。
仍以上述秒、分、时、天、周、月、年的时间元素作为字段,例如,当选定“年”为基准字段,那么“年”的下级字段包括:“秒、分、时、天、周、月”;如果选定“月”为基准字段,那么“月”的下级字段包括:“秒、分、时、天、周”;如果选定“周”为基准字段,那么“周”的下级字段包括:“秒、分、时、天”;如果选定“天”为基准字段,那么“天”的下级字段包括:“秒、分、时”;如果选定“时”为基准字段,那么“时”的下级字段包括:“秒、分”;如果选定“分”为基准字段,那么“分”的下级字段包括:“秒”;如果选定“秒”为基准字段,由于秒已经是最小的时间元素,因此秒没有下级字段。
确定出各个基准字段对应的各个下级字段之后,需要配置各个下级字段的下拉列表,从而完成各个基准字段所对应的cron表达式格式的设置。具体配置下级字段的下拉列表的方式,仍可如前所述的基于JavaScript下拉列表控件来实现。
S104:获取所确定的cron表达式格式中各个字段的下拉列表的值,生成cron表达式。
在一种实现方式中,获取所确定的cron表达式格式中各个字段的下拉列表的值,生成cron表达式,包括:对所确定的cron表达式格式中各个字段的下拉列表的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的下拉列表的值;根据各个字段的下拉列表的值,生成cron表达式。
进一步,根据各个字段的下拉列表的值,生成cron表达式,包括:针对所确定的所述cron表达式格式中各个字段,建立字段个数对应大小的一个空的数组;基于基准字段和发生onchange事件的各个字段的值,更新数组的值;将数组拼接为字符串,得到cron表达式。
其中,通过监控各个字段的下拉列表的onchange事件,可以得知各个下级字段的选项的值发生改变。然后再通过上述数组赋值的方式,即可得到各个字段(基准字段以及各个下级字段)的选项的值,从而最终生成cron表达式。
下面以一个具体例子,对图1所述的计划任务的实现方法进行示例性描述。
该例子中,在任务调度平台网站中为任务配置cron表达式,包括如下步骤(1)-(3)。
(1)使用一个下拉列表来表示任务触发日期基准字段
例如,在定时任务的配置中,需要为任务配置一个cron表达式,该任务可以在“每年”、“每月”、“每周”、“每天”、“每小时”、“每分钟”、“每秒钟”触发。这里就需要一个下拉列表来表示任务触发的基准字段,代码示例如下:
其中的value表示基准字段的id,后续可以根根该基准字段显示出其他字段对应的下拉列表。
(2)通过任务触发的基准字段显示其他字段
例如,由于cron表达式的七个字段分别对应:秒、分、时、日、周、月、年,因此,配置如下的“基准字段-下级字段”显示规则:
若基准字段选择为“年”:那么表达式格式为:____月份?
若基准字段选择为“月”:那么表达式格式为:___日期*?
若基准字段选择为“周”:那么表达式格式为:___?*星期几
若基准字段选择为“天”:那么表达式格式为:___**?
若基准字段选择为“时”:那么表达式格式为:__***?
若基准字段选择为“分”:那么表达式格式为:_****?
若基准字段选择为“秒”:那么表达式格式为:*****?
其中,上述表达式格式为“秒、分、时、日、周、月、年”,“_”代表“秒、分或时”的值,“*”表示任何值都可以,“?”表示忽略。
通过如上的规则,当选择不同的基准字段时,把其他需要显示的字段对应的下拉列表显示出来即可。
为了实现其他下级字段的显示,需要预先配置各个下级字段的下拉列表。例如,对于每个cron表达式的每个字段,用一个下拉列表里来与之对应起来。示例代码如下:
在完成“基准字段-下级字段”规则配置以及各个下级字段的下拉列表的配置之后,就可以通过监听基准字段下拉列表的选项变化事件来实现其他字段下拉列表的显示。
例如,监听基准下拉列表的onchange事件,当基准下拉列表的选项发生变化的时候,就回调用baseChage这个函数:
$("#base").on('change',baseChage);
因此,需要定义事件回调方法baseChage,这个方法中,根据基准字段id来显示需要显示的下拉列表。示例代码如下。
首先先将所有的字段下拉列表隐藏起来,代码如下
$("#month").hide();
其他字段类似。
其次,根据上面步骤(2)中的规则来显示对应的下拉列表:
//选每年,则显示每月
if(baseId==7){
$("#month").show();
};
其他字段的下拉列表也一样的逻辑。
至此:通过这个步骤就实现了各个字段对应的下拉列表的显示。可见,本发明可以有效的控制哪些字段需要显示,哪些字段不需要显示,从而减少了不必要的操作,也使得界面简洁。
(3)通过各个下拉列表的值来生成cron表达式
为每个字段对应的下拉列表绑定一个onchange事件,每当onchange事件触发时,就调用一次cron表达式生成的函数,示例代码如下:
(3.1)为每个下拉列表绑定onchange事件:
$("#month").on('change',gegerateCron);
$("#weekDay").on('change',gegerateCron);
$("#day").on('change',gegerateCron);
$("#hour").on('change',gegerateCron);
$("#minute").on('change',gegerateCron);
$("#second").on('change',gegerateCron);
(3.2)当对应字段的下拉列表发生变化时,就会触发之前绑定的函数gegerateCron,代码如下:
首先,把各个字段的内容放在一个数组内,后续再替换对应字段的内容。
例如,var cron=['*','*','*','*','*','?'];分别对应秒、分、时、日、月、周。
将基准字段和下级字段作为下面步骤的判断条件。
var baseId=$('#base').val();
var name=$(this).attr("id");
然后,根据基准字段和发生触发事件的下级字段,将步骤a中的对应位置的数组的值进行替换即可,代码片段如下:
对应的其他字段的替换和上面类似。
最后,再将数组拼接为一个字符串,即可以的到所需要的cron表达式,returncron.join("");
至此:就得到了最终的cron表达式。
参考图2,为一个示例性的cron表达式视图,其中,基准字段为月,发生触发事件的下级字段是日、时和分,通过上述获取各个字段值的方式,最终显示如图2所示的cron表达式视图。可见,图2中,定时任务的时间设置为:每月的第1天的6时5分。
可见,本发明在上述计划任务的实现方法中,针对现有技术的手动输入各个字段值的方式进行改进,通过下拉列表的方式,用户仅需对各个字段的选项进行简单选择即可,由于不需要用户输入,从而避免用户输入错误,由此减少出错率;另外,由于仅显示选定基准字段对应的且有触发事件的下级字段,因此,可以更加直观、简洁的展示定时任务触发时间视图;而且,本发明可通过JavaScript脚本来实现,因此能够很方便的与现有的一些框架进行整合。
参考图3,为根据本发明的另一个实施例提供的计划任务的实现方法流程图,包括如下步骤S301-S304。与图1提供的计划任务的实现方法主要不同在于,本实施例提供的计划任务的实现方法中,各个下级字段是基于复选框实现的,即,各个下级字段可以提供多个选项。
S301:配置基准字段下拉列表。
本领域技术人员了解,一个cron表达式有至少6个(也可能7个)有空格分隔的字段(时间元素)。
例如,时间元素按顺序依次为:
秒(0~59);
分钟(0~59);
小时(0~23);
天(月)(0~31,需要考虑月的天数);
周几(星期)(1~7:SUN,MON,TUE,WED,THU,FRI,SAT);
月(0~11);
年份(1970-2099)。
本发明中,上述任何一个时间元素都可以作为基准字段,因此,在基准字段下拉列表配置中,将上述各个时间元素配置为下拉列表的各个选项。
具体实现中,可以基于JavaScript下拉列表控件,实现基准字段下拉列表的配置。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
JavaScript被广泛的用于网页设计和网页特效制作等。几乎所有的网页都会使用JavaScript,例如表单验证,动画,页面样式控制等等。在网页的开发中,已经内置了很多基础的控件了,比如输入框,下拉列表,复选框等等,并且些基础的控件也提供了一些事件机制可以让JavaScript来做出对应的响应。因此,本发明可以基于这些事件来开发出非常丰富的功能,同时,可以将一些易出错的文本输入操作简化成界面化的选择操作,从各个方面来扩展这些基础的控件来满足用户的需求。
S302:监控基准字段下拉列表的触发事件,确定当前被选定的基准字段。
例如,通过监控基准字段下拉列表的onchange事件,当基准字段下拉列表的选项发生变化时,可确定出当前被用户选定的基准字段。其中,onchange事件是在客户端改变输入控件的值,比如一个textbox,会触发这个事件,也即,onchange在元素值改变时触发。
S303:基于预先设置的基准字段与cron表达式格式的对应关系,确定当前被选定基准字段对应的cron表达式格式。
本发明中,需要预先设置的基准字段与cron表达式格式的对应关系,具体设置过程包括:基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。
仍以上述秒、分、时、天、周、月、年的时间元素作为字段,例如,当选定“年”为基准字段,那么“年”的下级字段包括:“秒、分、时、天、周、月”;如果选定“月”为基准字段,那么“月”的下级字段包括:“秒、分、时、天、周”;如果选定“周”为基准字段,那么“周”的下级字段包括:“秒、分、时、天”;如果选定“天”为基准字段,那么“天”的下级字段包括:“秒、分、时”;如果选定“时”为基准字段,那么“时”的下级字段包括:“秒、分”;如果选定“分”为基准字段,那么“分”的下级字段包括:“秒”;如果选定“秒”为基准字段,由于秒已经是最小的时间元素,因此秒没有下级字段。
确定出各个基准字段对应的各个下级字段之后,需要配置各个下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。具体配置下级字段的复选框的方式,可基于JavaScript复选框控件来实现。
S304:获取所确定的cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。
在一种实现方式中,获取所确定的cron表达式格式中各个字段的复选框的值,生成cron表达式,包括:对所确定的cron表达式格式中各个字段的复选框的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的复选框的值;根据各个字段的复选框的值,生成cron表达式。
进一步,根据各个字段的复选框的值,生成cron表达式,包括:针对所确定的cron表达式格式中各个字段,建立字段个数对应大小的一个空的数组;基于基准字段和发生onchange事件的各个字段的值(可以是多个),更新数组的值;将数组拼接为字符串,得到cron表达式。
其中,通过监控各个字段的复选框的onchange事件,可以得知各个下级字段的选项的值发生改变。然后再通过上述数组赋值的方式,即可得到各个字段(基准字段以及各个下级字段)的选项的值,从而最终生成cron表达式。
下面以一个具体例子,对图3所述的计划任务的实现方法进行示例性描述。
该例子中,在任务调度平台网站中为任务配置cron表达式,包括如下步骤(1)-(3)。
(1)使用一个下拉列表来表示任务触发日期基准字段
例如,在定时任务的配置中,需要为任务配置一个cron表达式,该任务可以在“每年”、“每月”、“每周”、“每天”、“每小时”、“每分钟”、“每秒钟”触发。这里就需要一个下拉列表来表示任务触发的基准字段,代码示例如下:
其中的value表示基准字段的id,后续可以根根该基准字段显示出其他字段对应的下拉列表。
(2)通过任务触发的基准字段显示其他字段
例如,由于cron表达式的七个字段分别对应:秒、分、时、日、周、月、年,因此,配置如下的“基准字段-下级字段”显示规则:
若基准字段选择为“年”:那么表达式格式为:____月份?
若基准字段选择为“月”:那么表达式格式为:___日期*?
若基准字段选择为“周”:那么表达式格式为:___?*星期几
若基准字段选择为“天”:那么表达式格式为:___**?
若基准字段选择为“时”:那么表达式格式为:__***?
若基准字段选择为“分”:那么表达式格式为:_****?
若基准字段选择为“秒”:那么表达式格式为:*****?
其中,上述表达式格式为“秒、分、时、日、周、月、年”,“_”代表“秒、分或时”的值,“*”表示任何值都可以,“?”表示忽略。
通过如上的规则,当选择不同的基准字段时,把其他需要显示的字段对应的复选框显示出来即可。
为了实现其他下级字段的显示,需要预先配置各个下级字段的复选框。例如,对于每个cron表达式格式的每个字段,用一个复选框来与之对应起来。示例代码如下:
在完成“基准字段-下级字段”规则配置以及各个下级字段的复选框的配置之后,就可以通过监听基准字段下拉列表的选项变化事件来实现其他字段复选框的显示。
例如,监听基准下拉列表的onchange事件,当基准下拉列表的选项发生变化的时候,就调用baseChage这个函数:
$("#base").on('change',baseChage)
因此,需要定义事件回调方法baseChage,这个方法中,根据基准字段id来显示需要显示的下级字段的复选框。示例代码如下。
首先先将所有的字段复选框隐藏起来,代码如下
$("#month").hide()
其他字段类似。
其次,根据上面步骤(2)中的规则来显示对应的复选框:
//选每年,则显示每月
if(baseId==7){
$("#month").show();
}
其他字段的复选框也一样的逻辑。
至此:通过这个步骤就实现了各个字段对应的复选框的显示。可见,本发明可以有效的控制哪些字段需要显示,哪些字段不需要显示,从而减少了不必要的操作,也使得界面简洁。
(3)通过各个下拉列表/复选框的值来生成cron表达式
为每个字段对应的下拉列表/复选框绑定一个onchange事件,每当onchange事件触发时,就调用一次cron表达式生成的函数,示例代码如下:
(3.1)为基准字段下拉列表及各个下级字段的复选框绑定onchange事件:
$("#month").on('change',gegerateCron);
$("#weekDay").on('change',gegerateCron);
$("#day").on('change',gegerateCron);
$("#hour").on('change',gegerateCron);
$("#minute").on('change',gegerateCron);
$("#second").on('change',gegerateCron);
(3.2)当对应字段的下拉列表或复选框发生变化时,就会触发之前绑定的函数gegerateCron,代码如下:
首先,把各个字段的内容放在一个数组内,后续再替换对应字段的内容。
例如,var cron=['*','*','*','*','*','?'];分别对应秒、分、时、日、月、周
将基准字段和下级字段作为下面步骤的判断条件。
var baseId=$('#base').val();
var name=$(this).attr("id");
然后,根据基准字段和发生触发事件的下级字段,将步骤a中的对应位置的数组的值进行替换即可,代码片段如下:
此处与图1对应的实施例中的例子不同的是,各个下级字段有可能有多个值,因此,当某个下级字段有多个值时,在该字段对应的数组的位置赋以多个值即可。
对应的其他字段的替换和上面类似。
最后,再将数组拼接为一个字符串,即可以的到所需要的cron表达式,returncron.join("");
至此:就得到了最终的cron表达式。
参考图4,为一个示例性的cron表达式视图,其中,基准字段为“月”,发生触发事件的下级字段是“日、时和分”,通过上述获取各个字段值的方式,最终显示如图4所示的cron表达式视图。由此,图4中表示的定时任务的时间设置为:每月的第1天和第10天的6时5分。可见,图4与图2不同的是,下级字段“日”进行了多选。
可见,本发明在上述计划任务的实现方法中,针对现有技术的手动输入各个字段值的方式进行改进,通过下拉列表或复选框的方式,用户仅需对各个字段的选项进行简单选择即可,由于不需要用户输入,从而避免用户输入错误,由此减少出错率;另外,由于仅显示选定基准字段对应的且有触发事件的下级字段,因此,可以更加直观、简洁的展示定时任务触发时间视图;而且,本发明可通过JavaScript脚本来实现,因此能够很方便的与现有的一些框架进行整合。
与图1-2方法实施例相对应,本发明提供一种计划任务的实现装置。
参见图5,示出了根据本发明一个实施例提供的计划任务的实现装置结构示意图,该装置包括:
基准字段配置单元501,用于配置基准字段下拉列表;
基准字段监控单元502,用于监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;
确定单元503,用于基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;
表达式生成单元504,用于获取所确定的所述cron表达式格式中各个字段的下拉列表的值,生成cron表达式。
在一种实现方式中,所述表达式生成单元504具体用于:对所确定的所述cron表达式格式中各个字段的下拉列表的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的下拉列表的值;以及,根据各个字段的下拉列表的值,生成cron表达式。
在一种实现方式中,所述表达式生成单元504具体用于:针对所确定的所述cron表达式格式中各个字段,建立空的数组;基于基准字段和发生onchange事件的各个字段的值,更新所述数组的值;将所述数组拼接为字符串,得到所述cron表达式。
在一种实现方式中,所述装置还包括:设置单元505,用于基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的下拉列表,从而完成各个基准字段所对应的cron表达式格式的设置。
在一种实现方式中,基于JavaScript内置的下拉列表控件,配置所述基准字段下拉列表或下级字段的下拉列表。
与图3-4方法实施例相对应,本发明提供一种计划任务的实现装置。
参见图6,示出了根据本发明另一个实施例提供的计划任务的实现装置结构示意图,该装置包括:
基准字段配置单元601,用于配置基准字段下拉列表;
基准字段监控单元602,用于监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;
确定单元603,用于基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;
表达式生成单元604,用于获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。
在一种实现方式中,所述表达式生成单元604具体用于:对所确定的所述cron表达式格式中各个字段的复选框的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的复选框的值;以及,根据各个字段的复选框的一个或多个值,生成cron表达式。
在一种实现方式中,所述表达式生成单元604具体用于:针对所确定的所述cron表达式格式中各个字段,建立空的数组;基于基准字段和发生onchange事件的各个字段的值,更新所述数组的值;将所述数组拼接为字符串,得到所述cron表达式。
在一种实现方式中,所述装置还包括:设置单元605,用于基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。
在一种实现方式中,基于JavaScript内置的下拉列表控件,配置所述基准字段下拉列表,以及,基于JavaScript内置的复选框控件下级字段的复选框。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用户变身控制的***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种计划任务的实现方法,其特征在于,包括:
配置基准字段下拉列表;
监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;
基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;
获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。
2.如权利要求1所述的方法,其特征在于,所述获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式,包括:
对所确定的所述cron表达式格式中各个字段的复选框的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的复选框的一个或多个值;
根据各个字段的复选框的一个或多个值,生成cron表达式。
3.如权利要求2所述的方法,其特征在于,所述根据各个字段的复选框的值,生成cron表达式,包括:
针对所确定的所述cron表达式格式中各个字段,建立空的数组;
基于基准字段和发生onchange事件的各个字段的值,更新所述数组的值;
将所述数组拼接为字符串,得到所述cron表达式。
4.如权利要求1所述的方法,其特征在于,所述预先设置的基准字段与cron表达式格式的对应关系,包括:
基于各个基准字段,确定出各个基准字段对应的所有下级字段;
针对各个下级字段,配置下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。
5.如权利要求1-4任一项所述的方法,其特征在于,基于JavaScript内置的下拉列表控件,配置所述基准字段下拉列表,以及,基于JavaScript内置的复选框控件,配置下级字段的复选框。
6.一种计划任务的实现装置,其特征在于,包括:
基准字段配置单元,用于配置基准字段下拉列表;
基准字段监控单元,用于监控基准字段下拉列表的触发事件,确定当前被选定的基准字段;
确定单元,用于基于预先设置的基准字段与cron表达式格式的对应关系,确定所述当前被选定基准字段对应的cron表达式格式;
表达式生成单元,用于获取所确定的所述cron表达式格式中各个字段的复选框的一个或多个值,生成cron表达式。
7.如权利要求6所述的装置,其特征在于,所述表达式生成单元具体用于:对所确定的所述cron表达式格式中各个字段的复选框的onchange事件进行监控,当监控到onchange事件时,调用述cron表达式生成函数,获取到发生onchange事件的字段的复选框的一个或多个值;以及,根据各个字段的复选框的一个或多个值,生成cron表达式。
8.如权利要求7所述的装置,其特征在于,所述表达式生成单元具体用于:针对所确定的所述cron表达式格式中各个字段,建立空的数组;基于基准字段和发生onchange事件的各个字段的值,更新所述数组的值;将所述数组拼接为字符串,得到所述cron表达式。
9.如权利要求6所述的装置,其特征在于,还包括:
设置单元,用于基于各个基准字段,确定出各个基准字段对应的所有下级字段;针对各个下级字段,配置下级字段的复选框,从而完成各个基准字段所对应的cron表达式格式的设置。
10.如权利要求6-9任一项所述的装置,其特征在于,基于JavaScript内置的下拉列表控件,配置所述基准字段下拉列表,以及,基于JavaScript内置的复选框控件,配置下级字段的复选框。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710195260.2A CN107193579B (zh) | 2017-03-29 | 2017-03-29 | 计划任务的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710195260.2A CN107193579B (zh) | 2017-03-29 | 2017-03-29 | 计划任务的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193579A true CN107193579A (zh) | 2017-09-22 |
CN107193579B CN107193579B (zh) | 2021-04-27 |
Family
ID=59871373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710195260.2A Active CN107193579B (zh) | 2017-03-29 | 2017-03-29 | 计划任务的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193579B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011832A (zh) * | 2019-03-04 | 2019-07-12 | 杭州迪普科技股份有限公司 | 一种计划任务的配置下发方法及装置 |
CN110187871A (zh) * | 2019-05-23 | 2019-08-30 | 招商局金融科技有限公司 | 计划任务建立方法、电子装置及存储介质 |
CN111124558A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 表达式的处理方法和装置 |
CN114004196A (zh) * | 2021-12-30 | 2022-02-01 | 云账户技术(天津)有限公司 | 一种转换表单数据格式的方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604242A (zh) * | 2009-07-17 | 2009-12-16 | 深圳市珍爱网信息技术有限公司 | Java应用***中实现定时任务的*** |
US20100205588A1 (en) * | 2009-02-09 | 2010-08-12 | Microsoft Corporation | General purpose distributed data parallel computing using a high level language |
CN101980150A (zh) * | 2010-09-30 | 2011-02-23 | 东莞市金友软件科技有限公司 | 一种数据集中字段值变化事件监控处理及防止死锁的方法 |
CN103246733A (zh) * | 2013-05-13 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种基于元数据的动态表单***及其生成方法 |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理*** |
CN105446812A (zh) * | 2016-01-04 | 2016-03-30 | 中国南方电网有限责任公司 | 一种多任务调度配置方法 |
US20160092281A1 (en) * | 2014-09-25 | 2016-03-31 | Canon Kabushiki Kaisha | Information processing apparatus, method for controlling the same, and storage medium |
CN105511958A (zh) * | 2014-10-11 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 任务的调度方法及装置 |
WO2016068930A1 (en) * | 2014-10-30 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Resource consuming tasks scheduler |
CN106383738A (zh) * | 2016-09-30 | 2017-02-08 | 北京百度网讯科技有限公司 | 任务处理方法和分布式计算框架 |
CN106485465A (zh) * | 2016-09-22 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种可配置的定时数据同步方法 |
-
2017
- 2017-03-29 CN CN201710195260.2A patent/CN107193579B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100205588A1 (en) * | 2009-02-09 | 2010-08-12 | Microsoft Corporation | General purpose distributed data parallel computing using a high level language |
CN101604242A (zh) * | 2009-07-17 | 2009-12-16 | 深圳市珍爱网信息技术有限公司 | Java应用***中实现定时任务的*** |
CN101980150A (zh) * | 2010-09-30 | 2011-02-23 | 东莞市金友软件科技有限公司 | 一种数据集中字段值变化事件监控处理及防止死锁的方法 |
CN103246733A (zh) * | 2013-05-13 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种基于元数据的动态表单***及其生成方法 |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理*** |
US20160092281A1 (en) * | 2014-09-25 | 2016-03-31 | Canon Kabushiki Kaisha | Information processing apparatus, method for controlling the same, and storage medium |
CN105511958A (zh) * | 2014-10-11 | 2016-04-20 | 阿里巴巴集团控股有限公司 | 任务的调度方法及装置 |
WO2016068930A1 (en) * | 2014-10-30 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Resource consuming tasks scheduler |
CN105446812A (zh) * | 2016-01-04 | 2016-03-30 | 中国南方电网有限责任公司 | 一种多任务调度配置方法 |
CN106485465A (zh) * | 2016-09-22 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种可配置的定时数据同步方法 |
CN106383738A (zh) * | 2016-09-30 | 2017-02-08 | 北京百度网讯科技有限公司 | 任务处理方法和分布式计算框架 |
Non-Patent Citations (6)
Title |
---|
HQMLN: "cron页面例子", 《HTTPS://BLOG.CSDN.NET/HQMLN/ARTICLE/DETAILS/84721065》 * |
LEADERGG: "quartz cron表达式在线生成", 《HTTPS://BLOG.CSDN.NET/LEADERGG/ARTICLE/DETAILS/46617995》 * |
PANIE2015: "将定时任务cron解析成中文", 《HTTPS://WWW.CNBLOGS.COM/PANIE2015/P/5553404.HTML》 * |
ZK32373139: "生成cron表达式", 《HTTPS://BLOG.CSDN.NET/ZK32373139/ARTICLE/DETAILS/83700775》 * |
张宝亮: "《实用JavaScript网页特效编程百宝箱》", 30 June 2001 * |
摆渡人工作室: "《模拟视窗-网页视窗风格控件设计》", 31 January 2001 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124558A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 表达式的处理方法和装置 |
CN110011832A (zh) * | 2019-03-04 | 2019-07-12 | 杭州迪普科技股份有限公司 | 一种计划任务的配置下发方法及装置 |
CN110011832B (zh) * | 2019-03-04 | 2022-01-25 | 杭州迪普科技股份有限公司 | 一种计划任务的配置下发方法及装置 |
CN110187871A (zh) * | 2019-05-23 | 2019-08-30 | 招商局金融科技有限公司 | 计划任务建立方法、电子装置及存储介质 |
CN110187871B (zh) * | 2019-05-23 | 2022-12-20 | 招商局金融科技有限公司 | 计划任务建立方法、电子装置及存储介质 |
CN114004196A (zh) * | 2021-12-30 | 2022-02-01 | 云账户技术(天津)有限公司 | 一种转换表单数据格式的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107193579B (zh) | 2021-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193579A (zh) | 计划任务的实现方法及装置 | |
US20100107056A1 (en) | Constructing And Maintaining Web Sites | |
US7593944B2 (en) | Variable abstraction | |
US8719896B2 (en) | Widget host container component for a rapid application development tool | |
US20140095972A1 (en) | Compressing tree diagrams | |
US9646117B1 (en) | Activated workflow | |
CN103345387B (zh) | 基于组件封装实现组件复用的方法 | |
US20090150773A1 (en) | Dynamic product configuration user interface | |
Patti et al. | Downtime variability: the impact of duration–frequency on the performance of serial production systems | |
CN109814858A (zh) | 基于Vue架构的WEB前端通用UI组件库 | |
US20120212501A1 (en) | Automated method for customizing theme colors in a styling system | |
US20160055445A1 (en) | Methods and Apparatus for Interactive Workflow for Patient Scheduling | |
CN101604339A (zh) | 在线定制门户***的方法及门户定制*** | |
CN106873965A (zh) | 一种适用于监测服务类应用动态构建页面的方法 | |
CN107241227A (zh) | 一种网络数据报表的配置及生成方法 | |
CN106933629A (zh) | 加载浏览器插件图标的方法及浏览器 | |
CN107168723A (zh) | 计划任务的实现方法及装置 | |
CN108664242A (zh) | 生成可视化界面的方法、装置、电子设备和可读存储介质 | |
US20150040100A1 (en) | Creation and Deployment of RESTful Web Services in a Graphical Programming Language | |
US20170346702A1 (en) | Computer implemented method for displaying a user interface | |
CN103677841B (zh) | 基于元素级模板的ietm的代码生成方法及装置 | |
CN105302558A (zh) | 一种用于多客户端的内容展现***及方法 | |
US20100162142A1 (en) | Common style sheets for compiled and scripting language applications | |
CN105094522B (zh) | 一种应用程序的事件提醒方法和装置 | |
CN102681869B (zh) | 在制造执行***内更新web包的方法和制造执行*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |