表达式的处理方法和装置与流程

文档序号:20681331发布日期:2020-05-08 18:25阅读:166来源:国知局
表达式的处理方法和装置与流程

本发明涉及人机交互领域,具体而言,涉及一种表达式的处理方法和装置。



背景技术:

定时任务是指在约定的时间执行特定的任务,例如,在每天早晨8点重启服务器等。cron表达式是用来表示定时任务在何时执行的表达式,通常用于配置定时任务的触发时间。cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每个域分别代表“秒”,“分”,“时”,“日”,“月”,“周”,“年”,该表达式可以表示多个时间,比如每年一月份的第一天可以用“***11?*”表示。

现有技术提供了两种方案实现cron表达式的输入,第一种方案为用户通过输入框直接输入cron表达式字符串,第二种方案为给用户提供包含输入和选择控件的表单和相应的文字说明,用户可以通过勾选和输入操作实现cron表达式的输入。但是,对于第一种方案,需要用户熟悉cron表达式规则,而且直接输入不方便,容易输错且输错了用户无法及时发现。而对于第二种方案,无法直观地确定表达式在接下来的时间内的运行时间(即定时任务的触发时间),而且无法得出表达式中每个域的含义。

针对现有技术中表达式的处理方法无法直观表达出表达式的运行时间的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种表达式的处理方法和装置,以至少解决现有技术中表达式的处理方法无法直观表达出表达式的运行时间的技术问题。

根据本发明实施例的一个方面,提供了一种表达式的处理方法,包括:获取多个控件生成的字段值,其中,多个控件与表达式包含的多个字段一一对应;基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间;将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间;输出表达式对应的运行时间。

进一步地,基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间包括:基于多个控件对应的字段的含义,确定每个控件对应的解析方式;基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果;基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间。

进一步地,在基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间之前,上述方法还包括:基于字段值的解析结果,判断字段值是否合法;如果确定字段值合法,则基于字段值的解析结果和当前时间,确定字段值对应的运行时间;如果确定字段值不合法,则输出提示信息。

进一步地,在基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果之后,输出字段值的解析结果。

进一步地,上述方法还包括:基于表达式包含的多个字段的预设解析方式,预先生成多个控件。

进一步地,在获取多个控件生成的字段值之后,上述方法还包括:基于多个控件生成的字段值,生成表达式。

进一步地,基于多个控件生成的字段值,生成表达式,包括:获取表达式的生成方式;按照表达式的生成方式,根据多个控件生成的字段值,生成表达式。

进一步地,对于多个控件中的每个控件,其生成的字段值为确定数值或不确定数值;并且,在输出表达式对应的运行时间时,如果至少一个字段的字段值为不确定数值,则在相应字段中填写多种可能的字段值,并对多种可能的情况进行排列组合,输出多个运行时间。

根据本发明实施例的另一方面,还提供了一种表达式的处理装置,包括:获取模块,用于获取多个控件生成的字段值,其中,多个控件与表达式包含的多个字段一一对应;确定模块,用于基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间;处理模块,用于将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间;输出模块,用于输出表达式对应的运行时间。

进一步地,确定模块包括:第一确定单元,用于基于多个控件对应的字段的含义,确定每个控件对应的解析方式;解析单元,用于基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果;第二确定单元,用于基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间。

进一步地,上述装置还包括:判断单元,用于基于字段值的解析结果,判断字段值是否合法;第三确定单元,用于如果确定字段值合法,则基于字段值的解析结果和当前时间,确定字段值对应的运行时间;输出单元,用于如果确定字段值不合法,则输出提示信息。

进一步地,输出模块还用于在基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果之后,输出字段值的解析结果。

进一步地,上述装置还包括:第一生成模块,用于基于表达式包含的多个字段的预设解析方式,预先生成多个控件。

进一步地,上述装置还包括:第二生成模块,用于基于多个控件生成的字段值,生成表达式。

进一步地,第二生成模块包括:获取单元,用于获取表达式的生成方式;生成单元,用于按照表达式的生成方式,根据多个控件生成的字段值,生成表达式。

进一步地,对于多个控件中的每个控件,其生成的字段值为确定数值或不确定数值;并且,输出模块还用于在输出表达式对应的运行时间时,如果至少一个字段的字段值为不确定数值,则在相应字段中填写多种可能的字段值,并对多种可能的情况进行排列组合,输出多个运行时间。

根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的表达式的处理方法。

根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的表达式的处理方法。

在本发明实施例中,在获取到多个控件生成的字段值之后,可以基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间,进一步将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间,并进行输出。由于可以通过每个域对应的控件生成字段值,并通过对每个域的字段值进行解析以得到表达式的运行时间,从而达到便捷方便和直观地编辑cron表达式,直观得出cron表达式的运行时间的技术效果,进而解决了现有技术中表达式的处理方法无法直观表达出表达式的运行时间的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种表达式的处理方法的流程图;以及

图2是根据本发明实施例的一种表达式的处理装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种表达式的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种表达式的处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,获取多个控件生成的字段值,其中,多个控件与表达式包含的多个字段一一对应。

具体地,上述的表达式可以是cron表达式,cron表达式可以分为6或7个域,每个域对应一个字段。上述的控件可以是表单控件,包括有输入控件、选择控件等,例如,输入控件可以是输入框,用户可以直接在输入框中输入某一数值或者范围值等;选择控件可以是“+”控件和“-”控件,用户通过点击不同的控件控制当前的数值增加或者减少。用户在通过控件输入每个字段的时间之后,相应的控件会生成数值、范围值或字符,并传输给处理器进行处理。

为了方便用户操作,将cron表达式的7个域拆分开,按“秒”,“分”,“时”,“日”,“月”,“周”,“年”依次对应,可以预先为每个域提供一个表单控件,用户通过表单控件可以依次生成每个域的字符串,在用户通过表单控件依次生成所有域的字符串之后,后台可以获取到7个域的字段值,7个域的字段值构成了整个cron表达式。

步骤s104,基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间。

具体地,不同域的字段值代表不同的含义,例如,对于字段值1,当该字段值为“分”域的字段值时,代表的含义为第1分钟;当该字段值为“月”域的字段值时,代表的含义为1月。

通过对每个域的字段值进行解析,可以确定每个域的含义,进一步,根据每个域的含义,可以分别计算出7个域的运行时间,运行时间可以是下一次的命中时间点,或者近几次的命中时间点。

步骤s106,将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间。

步骤s108,输出达式对应的运行时间。

可选地,对于多个控件中的每个控件,其生成的字段值为确定数值或不确定数值;并且,在输出表达式对应的运行时间时,如果至少一个字段的字段值为不确定数值,则在相应字段中填写多种可能的字段值,并对多种可能的情况进行排列组合,输出多个运行时间。

具体地,用户可以通过控件输入每个域的具体数值,也可以是不确定数值,例如,对于“分”域,用户可以通过控件输入具体数值“15”,也可以输入不确定数值“*”。在用户输入不确定数值的情况下,为了能够得到相应字段的运行时间,可以根据不确定数值对应的含义,填写可能的字段值,并根据每种情况进行排列组合,得到多个运行时间。

例如,对于“分”域,用户输入不确定数值“10-13”,可以确定用户希望第10分钟、第11分钟、第12分钟和第13分钟执行定时任务,从而可以在“分”域字段中填写字段值10、11、12和13,分别得到字段值为10的运行时间,字段值为11的运行时间,字段值为12的运行时间,以及字段值为13的运行时间,并将四个运行时间进行排列组合,从而得到“分”域的运行时间。

不仅如此,假设对于“秒”域,用户输入不确定数值“1-2”;对于“分”域,用户输入不确定数值“3-4”。那么可以确定,用户希望执行定时任务的秒为第1秒和第2秒,分钟为第3和第4分钟,那么就可以在“秒”域字段中填写字段值1和2,并在“分”域填写3和4,并对“秒”域的两种情况和“分”域的两种情况进行排列组合,得到4钟可能的执行时间,即,3分1秒,3分2秒,4分1秒,4分2秒。

在一种可选的方案中,在分别计算出7个域的运行时间之后,可以将7个域的运行时间进行拼凑,从而得到cron表达式的运行时间,进一步将该运行时间进行显示,从而用户可以直观地确定cron表达式在接下来的时间内所命中时间的时间点。

需要说明的是,由于cron表达式包含有7个域,为了避免用户未输入每个域的字段值,显示给用户的运行时间与用户实际需要的运行时间相差较大,在得到每个域对应的运行时间之后,不进行显示,而在所有域的控件均生成相应的字段值之后,显示最终的cron表达式的运行时间。

通过本发明上述实施例,在获取到多个控件生成的字段值之后,可以基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间,进一步将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间,并进行输出。由于可以通过每个域对应的控件生成字段值,并通过对每个域的字段值进行解析以得到表达式的运行时间,从而达到便捷方便和直观地编辑cron表达式,直观得出cron表达式的运行时间的技术效果,进而解决了现有技术中表达式的处理方法无法直观表达出表达式的运行时间的技术问题。

可选地,在本发明上述实施例中,步骤s104,基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间包括:

步骤s1041,基于多个控件对应的字段的含义,确定每个控件对应的解析方式。

步骤s1042,基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果。

具体地,上述的预设解析方式可以是cron表达式不同域中的解析语法规则,按域中的语法进行解析,如果字段值是“*”,则解析结果为任意合理值,例如,如果该域为“秒”或“分”,则可以确定解析结果为0-59中的任意一个;如果字段值是a-b,则解析结果为a-b范围内的值;如果字段值是a/b,则解析结果为从a开始,每b个单位一次;如果字段值是a,b,c,则解析结果为多个值a、b和c。

步骤s1043,基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间。

在一种可选的方案中,在得到每个域的解析结果之后,可以以当前时间点作为起点,分别计算每个域的运行时间,例如,当前时间为2018-10-0916:00:06,如果“秒”域的字段值为“56”,可以确定用户希望在每分钟第56秒执行定时任务,进一步结合当前时间,可以确定接下来“秒”域的运行时间,也即定时任务的触发时间为2018-10-0916:00:56、2018-10-0916:01:56、…;如果“分”域的字段值为“15”,可以确定用户希望在第15分钟执行定时任务,进一步结合当前时间,可以确定接下来“分”域的运行时间,也即定时任务的触发时间为2018-10-0916:15:06、2018-10-0917:15:06、…;如果“时”域的字段值为“2”,可以确定用户希望在凌晨2点执行定时任务,进一步结合当前时间,可以确定接下来“时”域的运行时间,也即定时任务的触发时间为2018-10-1002:00:06、2018-10-1102:00:06、…;如果“日”域的字段值为“20”,可以确定用户希望在20号执行定时任务,进一步结合当前时间,可以确定接下来“日”域的运行时间,也即定时任务的触发时间为2018-10-2016:00:06、2018-11-2016:00:06、…;如果“月”域的字段值为“8”,可以确定用户希望在8月执行定时任务,进一步结合当前时间,可以确定接下来“月”域的运行时间,也即定时任务的触发时间为2019-08-0916:00:06、2020-08-0916:00:06、…;如果“周”域的字段值为“?”,可以确定用户希望忽略该字段,可以确定接下来“周”域的运行时间为无;如果“年”域的字段值为“*”,可以确定用户希望在每年都执行定时任务,进一步结合当前时间,可以确定接下来“年”域的运行时间,也即定时任务的触发时间为2019-10-0916:00:06、2020-10-0916:00:06、…。通过将7个域的运行时间进行组合之后,可以得到cron表达式的运行时间,也即得到定时任务的实际触发时间为2019-08-2002:15:56、2020-08-2002:15:56、…。

可选地,在本发明上述实施例中,在步骤s1043,基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间之前,该方法还包括:

步骤s1044,基于字段值的解析结果,判断字段值是否合法。

步骤s1045,如果确定字段值合法,则基于字段值的解析结果和当前时间,确定字段值对应的运行时间。

步骤s1046,如果确定字段值不合法,则输出提示信息。

在一种可选的方案中,用户通过表单控件可以编辑任意的字段值,但是,表单控件生成的字段值有可能不合法,导致无法确定字段值对应的运行时间,进一步无法得到cron表达式的运行时间。为了提高准确度,在得到每个域的字段值的解析结果之后,可以判断该字段值是否合法,如果字段值不合法,例如,对于“时”域,如果生成的字段值为45,则可以确定该字段值不合法,可以输出提示信息,提示用户该字段值不合法,需要用户重新编辑;如果字段值合法,例如,对于“时”域,如果生成的字段值为12,则可以确定该字段值合法,进一步可以确定该字段值对应的运行时间。

可选地,在本发明上述实施例中,在基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果之后,输出字段值的解析结果。

在一种可选的方案中,在解析出每个字段值的解析结果之后,可以将每个域的含义显示出来,从而用户可以确定此次编辑是否正确,是否符合用户需求。

可选地,在本发明上述实施例中,该方法还包括:

步骤s110,基于表达式包含的多个字段的预设解析方式,预先生成多个控件。

在一种可选的方案中,为了防止由于用户不了解cron表达式,通过表单控件生成的字段值不合法,可以预先根据每个域的解析语法规则,生成控件表单,用户仅能编辑合法的字段值。

可选地,在本发明上述实施例中,在获取多个控件生成的字段值之后,该方法还包括:

步骤s112,基于多个控件生成的字段值,生成表达式。

在一种可选的方案中,在后台获取到7个域的字段值之后,可以根据7个域的字段值生成最终的cron表达式。例如,“秒”域的字段值为“56”,“分”域的字段值为“15”,“时”域的字段值为“2”,“日”域的字段值为“20”,“月”域的字段值为“8”,“周”域的字段值为“?”,“年”域的字段值为“*”,cron表达式可以由“56152208?*”表示。

可选地,在本发明上述实施例中,步骤s112,基于多个控件生成的字段值,生成表达式,包括:

步骤s1122,获取表达式的生成方式。

具体地,上述的生成方式可以是cron表达式的生成规则,包括:不同域的语法规则,以及多个域的拼接规则,例如,不同域之间通过空格拼接。

步骤s1124,按照表达式的生成方式,根据多个控件生成的字段值,生成表达式。

在一种可选的方案中,在后台获取到7个域的字段值之后,可以根据表达式的生成方式,根据7个域的字段值生成最终的cron表达式。

通过上述方案,不需要用户熟悉cron表达式规则,用户可以更加快捷和直观地编辑cron表达式,而且可以直观得出cron表达式在接下来的时间内所命中时间的时间点,以及cron表达式中每个域代表的含义。

实施例2

根据本发明实施例,提供了一种表达式的处理装置的实施例。

图2是根据本发明实施例的一种表达式的处理装置的示意图,如图2所示,该装置包括:

获取模块22,用于获取多个控件生成的字段值,其中,多个控件与表达式包含的多个字段一一对应。

具体地,上述的表达式可以是cron表达式,cron表达式可以分为6或7个域,每个域对应一个字段。上述的控件可以是表单控件,包括有输入控件、选择控件等,例如,输入控件可以是输入框,用户可以直接在输入框中输入某一数值或者范围值等;选择控件可以是“+”控件和“-”控件,用户通过点击不同的控件控制当前的数值增加或者减少。用户在通过控件输入每个字段的时间之后,相应的控件会生成数值、范围值或字符,并传输给处理器进行处理。

为了方便用户操作,将cron表达式的7个域拆分开,按“秒”,“分”,“时”,“日”,“月”,“周”,“年”依次对应,可以预先为每个域提供一个表单控件,用户通过表单控件可以依次生成每个域的字符串,在用户通过表单控件依次生成所有域的字符串之后,后台可以获取到7个域的字段值,7个域的字段值构成了整个cron表达式。

确定模块24,用于基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间。

具体地,不同域的字段值代表不同的含义,例如,对于字段值1,当该字段值为“分”域的字段值时,代表的含义为第1分钟;当该字段值为“月”域的字段值时,代表的含义为1月。

通过对每个域的字段值进行解析,可以确定每个域的含义,进一步,根据每个域的含义,可以分别计算出7个域的运行时间,运行时间可以是下一次的命中时间点,或者近几次的命中时间点。

处理模块26,用于将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间。

输出模块28,用于输出达式对应的运行时间。

可选地,对于多个控件中的每个控件,其生成的字段值为确定数值或不确定数值;并且,在输出表达式对应的运行时间时,如果至少一个字段的字段值为不确定数值,则在相应字段中填写多种可能的字段值,并对多种可能的情况进行排列组合,输出多个运行时间。

具体地,用户可以通过控件输入每个域的具体数值,也可以是不确定数值,例如,对于“分”域,用户可以通过控件输入具体数值“15”,也可以输入不确定数值“*”。在用户输入不确定数值的情况下,为了能够得到相应字段的运行时间,可以根据不确定数值对应的含义,填写可能的字段值,并根据每种情况进行排列组合,得到多个运行时间。

例如,对于“分”域,用户输入不确定数值“10-13”,可以确定用户希望第10分钟、第11分钟、第12分钟和第13分钟执行定时任务,从而可以在“分”域字段中填写字段值10、11、12和13,分别得到字段值为10的运行时间,字段值为11的运行时间,字段值为12的运行时间,以及字段值为13的运行时间,并将四个运行时间进行排列组合,从而得到“分”域的运行时间。

不仅如此,假设对于“秒”域,用户输入不确定数值“1-2”;对于“分”域,用户输入不确定数值“3-4”。那么可以确定,用户希望执行定时任务的秒为第1秒和第2秒,分钟为第3和第4分钟,那么就可以在“秒”域字段中填写字段值1和2,并在“分”域填写3和4,并对“秒”域的两种情况和“分”域的两种情况进行排列组合,得到4钟可能的执行时间,即,3分1秒,3分2秒,4分1秒,4分2秒。

在一种可选的方案中,在分别计算出7个域的运行时间之后,可以将7个域的运行时间进行拼凑,从而得到cron表达式的运行时间,进一步将该运行时间进行显示,从而用户可以直观地确定cron表达式在接下来的时间内所命中时间的时间点。

需要说明的是,由于cron表达式包含有7个域,为了避免用户未输入每个域的字段值,显示给用户的运行时间与用户实际需要的运行时间相差较大,在得到每个域对应的运行时间之后,不进行显示,而在所有域的控件均生成相应的字段值之后,显示最终的cron表达式的运行时间。

通过本发明上述实施例,在获取到多个控件生成的字段值之后,可以基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间,进一步将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间,并进行输出。由于可以通过每个域对应的控件生成字段值,并通过对每个域的字段值进行解析以得到表达式的运行时间,从而达到便捷方便和直观地编辑cron表达式,直观得出cron表达式的运行时间的技术效果,进而解决了现有技术中表达式的处理方法无法直观表达出表达式的运行时间的技术问题。

可选地,在本发明上述实施例中,确定模块包括:

第一确定单元,用于基于多个控件对应的字段的含义,确定每个控件对应的解析方式。

解析单元,用于基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果。

具体地,上述的预设解析方式可以是cron表达式不同域中的解析语法规则,按域中的语法进行解析,如果字段值是“*”,则解析结果为任意合理值,例如,如果该域为“秒”或“分”,则可以确定解析结果为0-59中的任意一个;如果字段值是a-b,则解析结果为a-b范围内的值;如果字段值是a/b,则解析结果为从a开始,每b个单位一次;如果字段值是a,b,c,则解析结果为多个值a、b和c。

第二确定单元,用于基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间。

在一种可选的方案中,在得到每个域的解析结果之后,可以以当前时间点作为起点,分别计算每个域的运行时间,例如,当前时间为2018-10-0916:00:06,如果“秒”域的字段值为“56”,可以确定用户希望在每分钟第56秒执行定时任务,进一步结合当前时间,可以确定接下来“秒”域的运行时间,也即定时任务的触发时间为2018-10-0916:00:56、2018-10-0916:01:56、…;如果“分”域的字段值为“15”,可以确定用户希望在第15分钟执行定时任务,进一步结合当前时间,可以确定接下来“分”域的运行时间,也即定时任务的触发时间为2018-10-0916:15:06、2018-10-0917:15:06、…;如果“时”域的字段值为“2”,可以确定用户希望在凌晨2点执行定时任务,进一步结合当前时间,可以确定接下来“时”域的运行时间,也即定时任务的触发时间为2018-10-1002:00:06、2018-10-1102:00:06、…;如果“日”域的字段值为“20”,可以确定用户希望在20号执行定时任务,进一步结合当前时间,可以确定接下来“日”域的运行时间,也即定时任务的触发时间为2018-10-2016:00:06、2018-11-2016:00:06、…;如果“月”域的字段值为“8”,可以确定用户希望在8月执行定时任务,进一步结合当前时间,可以确定接下来“月”域的运行时间,也即定时任务的触发时间为2019-08-0916:00:06、2020-08-0916:00:06、…;如果“周”域的字段值为“?”,可以确定用户希望忽略该字段,可以确定接下来“周”域的运行时间为无;如果“年”域的字段值为“*”,可以确定用户希望在每年都执行定时任务,进一步结合当前时间,可以确定接下来“年”域的运行时间,也即定时任务的触发时间为2019-10-0916:00:06、2020-10-0916:00:06、…。通过将7个域的运行时间进行组合之后,可以得到cron表达式的运行时间,也即得到定时任务的实际触发时间为2019-08-2002:15:56、2020-08-2002:15:56、…。

可选地,在本发明上述实施例中,该装置还包括:

判断单元,用于基于字段值的解析结果,判断字段值是否合法。

第三确定单元,用于如果确定字段值合法,则基于字段值的解析结果和当前时间,确定字段值对应的运行时间。

输出单元,用于如果确定字段值不合法,则输出提示信息。

在一种可选的方案中,用户通过表单控件可以编辑任意的字段值,但是,表单控件生成的字段值有可能不合法,导致无法确定字段值对应的运行时间,进一步无法得到cron表达式的运行时间。为了提高准确度,在得到每个域的字段值的解析结果之后,可以判断该字段值是否合法,如果字段值不合法,例如,对于“时”域,如果生成的字段值为45,则可以确定该字段值不合法,可以输出提示信息,提示用户该字段值不合法,需要用户重新编辑;如果字段值合法,例如,对于“时”域,如果生成的字段值为12,则可以确定该字段值合法,进一步可以确定该字段值对应的运行时间。

可选地,在本发明上述实施例中,输出模块还用于在基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果之后,输出字段值的解析结果。

在一种可选的方案中,在解析出每个字段值的解析结果之后,可以将每个域的含义显示出来,从而用户可以确定此次编辑是否正确,是否符合用户需求。

可选地,在本发明上述实施例中,该装置还包括:

第一生成模块,用于基于表达式包含的多个字段的预设解析方式,预先生成多个控件。

在一种可选的方案中,为了防止由于用户不了解cron表达式,通过表单控件生成的字段值不合法,可以预先根据每个域的解析语法规则,生成控件表单,用户仅能编辑合法的字段值。

可选地,在本发明上述实施例中,该装置还包括:

第二生成模块,用于基于多个控件生成的字段值,生成表达式。

在一种可选的方案中,在后台获取到7个域的字段值之后,可以根据7个域的字段值生成最终的cron表达式。例如,“秒”域的字段值为“56”,“分”域的字段值为“15”,“时”域的字段值为“2”,“日”域的字段值为“20”,“月”域的字段值为“8”,“周”域的字段值为“?”,“年”域的字段值为“*”,cron表达式可以由“56152208?*”表示。

可选地,在本发明上述实施例中,第二生成模块包括:

获取单元,用于获取表达式的生成方式。

具体地,上述的生成方式可以是cron表达式的生成规则,包括:不同域的语法规则,以及多个域的拼接规则,例如,不同域之间通过空格拼接。

生成单元,用于按照表达式的生成方式,根据多个控件生成的字段值,生成表达式。

在一种可选的方案中,在后台获取到7个域的字段值之后,可以根据表达式的生成方式,根据7个域的字段值生成最终的cron表达式。

所述数据过滤装置包括处理器和存储器,上述获取模块、确定模块、处理模块和输出模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来确保满足复杂的过滤场景,实现灵活的过滤方案,以及丰富的过滤输入控件。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述表达式的处理方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述表达式的处理方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,本文中的设备可以是服务器、pc、pad、手机等。处理器执行程序时实现以下步骤:

获取多个控件生成的字段值,其中,多个控件与表达式包含的多个字段一一对应;基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间;将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间;输出表达式对应的运行时间。

基于多个控件对应的字段的含义,确定每个控件对应的解析方式;基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果;基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间。

在基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间之前,基于字段值的解析结果,判断字段值是否合法;如果确定字段值合法,则基于字段值的解析结果和当前时间,确定字段值对应的运行时间;如果确定字段值不合法,则输出提示信息。

在基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果之后,输出字段值的解析结果。

基于表达式包含的多个字段的预设解析方式,预先生成多个控件。

在获取多个控件生成的字段值之后,基于多个控件生成的字段值,生成表达式。

获取表达式的生成方式;按照表达式的生成方式,根据多个控件生成的字段值,生成表达式。

对于多个控件中的每个控件,其生成的字段值为确定数值或不确定数值;并且,在输出表达式对应的运行时间时,如果至少一个字段的字段值为不确定数值,则在相应字段中填写多种可能的字段值,并对多种可能的情况进行排列组合,输出多个运行时间。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:

获取多个控件生成的字段值,其中,多个控件与表达式包含的多个字段一一对应;基于多个控件对应的字段的含义解析多个控件生成的字段值,确定每个字段值对应的运行时间;将多个字段值对应的运行时间进行组合,得到表达式对应的运行时间;输出表达式对应的运行时间。

基于多个控件对应的字段的含义,确定每个控件对应的解析方式;基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果;基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间。

在基于每个字段值的解析结果和当前时间,确定每个字段值对应的运行时间之前,基于字段值的解析结果,判断字段值是否合法;如果确定字段值合法,则基于字段值的解析结果和当前时间,确定字段值对应的运行时间;如果确定字段值不合法,则输出提示信息。

在基于每个控件对应的字段的预设解析方式,对相应的字段值进行解析,得到每个字段值的解析结果之后,输出字段值的解析结果。

基于表达式包含的多个字段的预设解析方式,预先生成多个控件。

在获取多个控件生成的字段值之后,基于多个控件生成的字段值,生成表达式。

获取表达式的生成方式;按照表达式的生成方式,根据多个控件生成的字段值,生成表达式。

对于多个控件中的每个控件,其生成的字段值为确定数值或不确定数值;并且,在输出表达式对应的运行时间时,如果至少一个字段的字段值为不确定数值,则在相应字段中填写多种可能的字段值,并对多种可能的情况进行排列组合,输出多个运行时间。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1