[发明专利]一种使用逻辑克隆表达式的定时任务调度的方法及装置有效
申请号: | 201610209858.8 | 申请日: | 2016-04-06 |
公开(公告)号: | CN107273191B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 魏亚文;孙政 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 张一军;姜劲 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 逻辑 克隆 表达式 定时 任务 调度 方法 装置 | ||
本发明提供一种逻辑克隆表达式的定时任务调度的方法和装置,该方法包括:根据业务系统的具体任务,配置包括能够由逻辑运算符连接的多个克隆表达式的逻辑克隆表达式;解析逻辑克隆表达式,以获得用于定时任务调度的触发时间集合;并且重复执行如下步骤:以当前时间作为参照时间,根据触发时间集合计算下一待执行任务的时间;当到达时间时,执行任务。通过本发明提供的逻辑克隆表达式能够有效满足非常复杂的定时任务调度的时间要求,解决了由于传统方式的导致多次进行无效调用定时任务,从而导致的业务系统的性能损耗和资源的占用问题。此外,本发明提出的逻辑克隆表达式的配置的方式,还具有灵活高效以及可读性强的特点。
技术领域
本发明涉及计算机软件技术领域,具体涉及一种逻辑克隆表达式的定时任务调度的方法及装置。
背景技术
在分布式系统中,定时任务是异步处理消息或者请求的重要方式之一,其中,克隆表达式(CronExpression)是专门用于配置定时执行调度任务的表达式。比如0 0/514**?表示在每天下午2点到下午2:55期间的每5分钟触发一次任务。然而,随着业务的发展,单个克隆表达式已经很难满足复杂的调度任务需求。
针对单个克隆表达式无法满足复杂的调度任务需求的情况下,现有技术中一般是通过配置最宽松的克隆表达式,然后在执行某个定时任务的时候,再根据代码中判定是否执行该克隆表达式,以这种方式来触发任务的调度。
然而,针对单个克隆表达式无法满足复杂的调度任务需求的情况下,上述现有技术也存在如下缺点:
1、多次无效触发定时任务,严重影响业务系统的性能,浪费计算机资源;
2、由于单个克隆表达式属于硬编码,因此在配置定时任务中加有触发时间的判定逻辑,从而导致代码耦合而且极度不灵活。
发明内容
本发明的目的是提供一种使用逻辑克隆表达式的定时任务调度的方法及装置,以满足所有的复杂业务场景下的触发时间的需求。
本发明的技术方案是提供一种使用逻辑克隆表达式的定时任务调度的方法,该方法包括:根据业务系统的具体任务,配置包括能够由逻辑运算符连接的多个克隆表达式的逻辑克隆表达式;解析逻辑克隆表达式,以获得用于定时任务调度的触发时间集合;并且重复执行如下步骤:以当前时间作为参照时间,根据触发时间集合计算下一待执行任务的时间;当到达时间时,执行任务。
可选地,在解析逻辑克隆表达式之前,还包括:对逻辑克隆表达式进行校验,其中,校验的内容包括:确认逻辑克隆表达式不存在非逻辑运算符的字符;确认逻辑克隆表达式满足开闭原则以及逻辑克隆表达式中的表达式中各个时间属性间被空格分隔。
可选地,解析逻辑克隆表达式还包括:按照逻辑运算符的优先级以堆栈先入后出的方式解析逻辑运算符。
可选地,解析逻辑克隆表达式还包括:取出逻辑克隆表达式中的克隆表达式并将克隆表达式放入一个集合中;获取逻辑克隆表达式中的每个克隆表达式的时间单位属性集合,并对每个时间单位属性集合进行逻辑运算。
可选地,时间单位属性的数量为7个,时间单位属性包括:秒、分、时、月内日期、月、周内日期以及年。
可选地,逻辑克隆表达式能够包括但不限于:
(克隆表达式1)(克隆表达式2)|(克隆表达式3)或者(克隆表达式1)(克隆表达式2)[!(克隆表达式3)]|(克隆表达式4)。
本发明还提供一种使用逻辑克隆表达式的定时任务调度的装置,包括:
设置模块,用于根据业务系统的具体任务,配置包括能够由逻辑运算符连接的多个克隆表达式的逻辑克隆表达式;解析模块,用于解析逻辑克隆表达式,以获得用于定时任务调度的触发时间集合;任务执行模块,以当前时间作为参照时间,根据触发时间集合计算下一待执行任务的时间;当到达时间时,执行任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610209858.8/2.html,转载请声明来源钻瓜专利网。