CN111274013B - 容器内基于内存数据库的定时任务调度的优化方法及系统 - Google Patents

容器内基于内存数据库的定时任务调度的优化方法及系统 Download PDF

Info

Publication number
CN111274013B
CN111274013B CN202010048736.1A CN202010048736A CN111274013B CN 111274013 B CN111274013 B CN 111274013B CN 202010048736 A CN202010048736 A CN 202010048736A CN 111274013 B CN111274013 B CN 111274013B
Authority
CN
China
Prior art keywords
task
timing
processed
module
timing task
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.)
Active
Application number
CN202010048736.1A
Other languages
English (en)
Other versions
CN111274013A (zh
Inventor
田跃东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN202010048736.1A priority Critical patent/CN111274013B/zh
Publication of CN111274013A publication Critical patent/CN111274013A/zh
Application granted granted Critical
Publication of CN111274013B publication Critical patent/CN111274013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种容器内基于内存数据库的定时任务调度的优化方法及系统,通过调度决策容器重复从内存数据库中获取各待处理定时任务并将其分发至定时任务处理队列,然后通过任务处理容器重复从定时任务处理队列中获取并执行各待处理定时任务,通过设置调度决策容器和任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。

Description

容器内基于内存数据库的定时任务调度的优化方法及系统
技术领域
本发明涉及计算机技术容器化任务调度技术领域,尤其涉及一种容器内基于内存数据库的定时任务调度的优化方法及系统。
背景技术
目前随着容器化的普及,一些企业和公司将定时任务也纳入了容器化的范围,随着容器内的定时任务的数量逐渐增多,对定时任务的调度也变得越来越复杂,此时,在容器内调度定时任务以及执行定时任务的处理机制会出现一些瓶颈,例如:调度定时任务和的执行定时任务的准确性较低、调度定时任务和执行定时任务的效率不高等。
因此,如何保证调度定时任务和执行定时任务的准确性和效率是业内亟待解决的技术问题。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供了一种容器内基于内存数据库的定时任务调度的优化方法及系统。
本发明的一种容器内基于内存数据库的定时任务调度的优化方法的技术方案如下:
S1、通过调度决策容器重复从内存数据库中获取至少一个待处理定时任务,并将其分发至定时任务处理队列;
S2、通过任务处理容器重复从所述定时任务处理队列中获取并执行各所述待处理定时任务。
本发明的一种容器内基于内存数据库的定时任务调度的优化方法的有益效果如下:
通过调度决策容器重复从内存数据库中获取各待处理定时任务并将其分发至定时任务处理队列,然后通过任务处理容器重复从定时任务处理队列中获取并执行各待处理定时任务,也就是说,通过设置调度决策容器和任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。
在上述方案的基础上,本发明的一种容器内基于内存数据库的定时任务调度的优化方法还可以做如下改进。
进一步,S1中通过所述调度决策容器具体执行如下步骤:
S10、任一时刻从所述内存数据库内获取至少一个定时任务,并采用哈希链表算法对各所述定时任务进行处理后存储至链表,所述链表以所述时刻作为关键字、以存放各所述定时任务的任务结构作为相应的链表节点;
S11、采用无权最短路径算法对所述链表中的各所述定时任务的任务属性进行分析,并结合当前时间筛选出至少一个所述待处理定时任务;
S12、通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列。
采用上述进一步方案的有益效果是:通过哈希链表算法便于将同一时间获取的各定时任务放在同一时刻下,在下一个时刻再将新获取的定时任务放在链表中下一个时刻所对应的任务结构中,不容易在调度定时任务时发生错误,然后利用用无权最短路径算法从各定时任务中筛选出待处理定时任务,最后通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列,保障了各待处理定时任务的快速分发处理及保证系统调度资源的均衡,而且,只需从定时任务处理队列就能获取待处理定时任务,而不需要从内存数据库获取,在提升了调度待处理定时任务和执行待处理定时任务的效率的同时,也提高了执行待处理定时任务的准确性。
进一步,还包括如下步骤:S100、通过设置运维界面对所述内存数据中的定时任务进行配置。
采用上述进一步方案的有益效果是:通过设置运维界面对所述内存数据中的定时任务进行配置,可灵活改变对定时任务的调度时间、可灵活改变定时任务的调度顺序,且在对定时任务进行配置如修改、删除、增加时,不需要现有技术中的需重新制作容器镜像并发布的过程,减少了容器镜像操作,提高了调度定时任务的效率,进而提高了调度待处理定时任务和执行待处理定时任务的效率。
进一步,S12之后还包括如下步骤:S13、结合各所述待处理定时任务的任务属性相应生成各所述待处理定时任务的任务执行状态,并将各所述任务执行状态发送至状态数据库,并对所述状态数据库进行监测。
采用上述进一步方案的有益效果是:能及时查看各待处理定时任务的任务执行状态。
进一步,S2中通过所述任务处理容器执行各所述待处理定时任务具体包括如下步骤:
S20、从所述状态数据库中获取各所述待处理定时任务所相应的各任务执行状态;
S21、结合各所述任务执行状态对各相应的待处理定时任务的任务属性进行分析,当满足执行条件时,执行各所述待处理定时任务,并更新所述状态数据库中相应的各任务执行状态。
采用上述进一步方案的有益效果是:在执行完待处理定时任务,对述状态数据库中相应的各任务执行状态进行更新,便于查看待处理定时任务的执行结果。
本发明的一种容器内基于内存数据库的定时任务调度的优化系统的技术方案如下:
包括调度决策模块和任务处理模块;
所述调度决策模块通过调度决策容器重复从内存数据库中获取至少一个待处理定时任务,并将其分发至定时任务处理队列;
所述任务处理模块通过任务处理容器重复从所述定时任务处理队列中获取并执行各所述待处理定时任务。
本发明的一种容器内基于内存数据库的定时任务调度的优化系统的有益效果如下:
调度决策模块通过调度决策容器从内存数据库中获取各待处理定时任务并将其分发至定时任务处理队列,然后任务处理模块通过任务处理容器从定时任务处理队列中获取并执行各待处理定时任务,通过调度决策模块中的调度决策容器和任务处理模块中的任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。
在上述方案的基础上,本发明的一种容器内基于内存数据库的定时任务调度的优化系统还可以做如下改进。
进一步,所述调度决策模块包括链表模块、筛选模块和分发模块;
所述链表模块用于在任一时刻从所述内存数据库内获取至少一个定时任务,并采用哈希链表算法对各所述定时任务进行处理后存储至链表,所述链表以所述时刻作为关键字、以存放各所述定时任务的任务结构作为相应的链表节点;
所述筛选模块采用无权最短路径算法对所述链表中的各所述定时任务的任务属性进行分析,并与当前时间进行比较后筛选出至少一个所述待处理定时任务;
所述分发模块通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列。
采用上述进一步方案的有益效果是:通过哈希链表算法便于将同一时间获取的各定时任务放在同一时刻下,在下一个时刻再将新获取的定时任务放在链表中下一个时刻所对应的任务结构中,不容易在调度定时任务时发生错误,然后利用用无权最短路径算法从各定时任务中筛选出待处理定时任务,最后通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列,保障了各待处理定时任务的快速分发处理及保证系统调度资源的均衡。而且,只需从定时任务处理队列就能获取待处理定时任务,而不需要从内存数据库获取,在提升了调度待处理定时任务和执行待处理定时任务的效率的同时,也提高了执行待处理定时任务的准确性。
进一步,还包括运维模块,所述运维模块通过设置运维界面对所述内存数据中的定时任务进行配置。
采用上述进一步方案的有益效果是:通过设置运维界面对所述内存数据中的定时任务进行配置,可灵活改变对定时任务的调度时间、可灵活改变定时任务的调度顺序,且在对定时任务进行配置如修改、删除、增加时,不需要现有技术中的需重新制作容器镜像并发布的过程,减少了容器镜像操作,提高了调度定时任务的效率,进而提高了调度待处理定时任务和执行待处理定时任务的效率。
进一步,还包括生成模块和监测模块,所述生成模块结合各所述待处理定时任务的任务属性相应生成各所述待处理定时任务的任务执行状态,所述分发模块将各所述任务执行状态发送至状态数据库,并通过所述监测模块对所述状态数据库进行监测。
采用上述进一步方案的有益效果是:能及时查看各待处理定时任务的任务执行状态。
进一步,所述任务处理模块包括获取模块、分析模块和执行模块,所述获取模块从所述状态数据库中获取各所述待处理定时任务所相应的各任务执行状态,所述分析模块结合各所述任务执行状态对各相应的待处理定时任务的任务属性进行分析,当满足执行条件时,所述执行模块执行各所述待处理定时任务,并更新所述状态数据库中相应的各任务执行状态。
采用上述进一步方案的有益效果是:在执行完待处理定时任务,对述状态数据库中相应的各任务执行状态进行更新,便于查看待处理定时任务的执行结果。
附图说明
图1为本发明实施例的一种容器内基于内存数据库的定时任务调度的优化方法的流程示意图之一;
图2为本发明实施例的一种容器内基于内存数据库的定时任务调度的优化方法的流程示意图之二;
图3为本发明实施例的一种容器内基于内存数据库的定时任务调度的优化方法的逻辑示意图;
图4为本发明实施例的一种容器内基于内存数据库的定时任务调度的优化系统的结构示意图;
具体实施方式
如图1所示,本发明实施例的一种容器内基于内存数据库的定时任务调度的优化方法,包括如下步骤:
S1、通过调度决策容器重复从内存数据库中获取至少一个待处理定时任务,并将其分发至定时任务处理队列;
S2、通过任务处理容器重复从所述定时任务处理队列中获取并执行各所述待处理定时任务。
通过调度决策容器从内存数据库中获取各待处理定时任务并将其分发至定时任务处理队列,然后通过任务处理容器从定时任务处理队列中获取并执行各待处理定时任务,通过设置调度决策容器和任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。
其中,假设在零时刻在通过调度决策容器将从内存数据库中获取1个、2个、3个以及多个待处理定时任务,再分发至定时任务处理队列,多个待处理定时任务在定时任务处理队列的排序方式可存在如下方式,详细地:
1)按照多个待处理定时任务的执行时间的前后顺序放置在定时任务处理队列中;
2)将多个待处理定时任务随机放置在定时任务处理队列中;
此时,由于已将所获取的待处理定时任务分发至定时任务处理队列,在下一时刻,调度决策容器继续从内存数据库中获取新的待处理定时任务,然后继续将其分发至定时任务处理队列。
也就是说,调度决策容器只需调度内存数据库中的待处理定时任务至定时任务处理队列即可,而任务处理容器只需从定时任务处理队列中获取待处理定时任务进行执行,通过设置调度决策容器和任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。
较优地,在上述技术方案中,如图2所示,S1中通过所述调度决策容器具体执行如下步骤:
S10、任一时刻从所述内存数据库内获取至少一个定时任务,并采用哈希链表算法对各所述定时任务进行处理后存储至链表,所述链表以所述时刻作为关键字、以存放各所述定时任务的任务结构作为相应的链表节点;
结合图3进行阐述,假设内存数据库中有两个定时任务,且在零时刻从内存数据库内获取这两个定时任务,采用哈希链表算法对这两个定时任务进行处理后存储至链表,链表的关键字为时间即零时刻,在零时刻所对应的链表节点的任务结构中,存放着两个定时任务,在下一时刻如第一时刻又从内存数据库中获取两个新的定时任务,在链表中新设置关键字即第一时刻,在第一时刻所对应的链表节点的任务结构中,存放新的两个定时任务,并以此类推,形成了以各时刻为关键字、以存放各定时任务的任务结构作为相应的链表节点的链表,也就是说,任务结构可理解为:以各时刻为关键字来以存放各定时任务的一种数据结构,任务结构为链表的链表节点。
S11、采用无权最短路径算法对所述链表中的各所述定时任务的任务属性进行分析,并结合当前时间筛选出至少一个所述待处理定时任务;
以零时刻为例,并结合图3继续进行阐述,采用无权最短路径算法对零时刻所对应的两个定时任务的任务属性分别进行分析,任务属性中包括定时任务的执行时间、类型和与其它定时任务之间的是否关联等,其中对关联的解释为:假如某定时任务A在执行之前,须另外一个定时任务B先执行完毕,则该定时任务A与另外一个定时任务B相关联,可以理解的是,其关联具有单向性,定时任务A在执行前须定时任务B先执行完毕,但定时任务B在执行前不会先执行定时任务A。
为了便于描述,将这两个定时任务分别记为第一定时任务和第二定时任务,若对第一定时任务的任务属性进行分析后发现,第一定时任务的执行时间为2020年1月1日12:00:00,第二定时任务的执行时间为2020年1月1日12:02:00,若当前时间为2020年1月1日11:59:30,第一定时任务的执行时间与第二定时任务的执行时间与当前时间进行比较时,具体为:
可设置时间阈值,当定时任务的执行时间与当前时间的偏差时间在时间阈值内,则该定时任务即为待处理定时任务,当定时任务的执行时间与当前时间的偏差时间在时间阈值之外,则可将该定时任务重新发送至获取定时任务阶段,然后存入下一个时刻所对应的链表节点的任务结构中;
此时,由于第一定时任务的执行时间相较于当前时间之间的偏差时间为30秒,则第一定时任务为待处理定时任务,第二定时任务的执行时间相较于当前时间之间的偏差时间为2分钟30秒,则将第二定时任务新发送至获取定时任务阶段,然后存入下一个时刻所对应的链表节点的任务结构中。
S12、通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列。
若选出来100个待处理定时任务,通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将这100各待处理定时任务分发至所述定时任务处理队列,保障了各待处理定时任务的快速分发处理及保证系统调度资源的均衡。
也就是说,通过哈希链表算法便于将同一时间获取的各定时任务放在同一时刻下,在下一个时刻再将新获取的定时任务放在链表中下一个时刻所对应的任务结构中,不容易在调度定时任务时发生错误,然后利用用无权最短路径算法从各定时任务中筛选出待处理定时任务,最后通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列,保障了各待处理定时任务的快速分发处理及保证系统调度资源的均衡,且通过S10至S12可完成秒级的定时任务的调度,而现有的技术中由于容器限制,完全无法到达对定时任务实现秒级的调度。
而且,只需从定时任务处理队列就能获取待处理定时任务,而不需要从内存数据库获取,在提升了调度待处理定时任务和执行待处理定时任务的效率的同时,也提高了执行待处理定时任务的准确性。具体地:
假如内存数据库中有十万条定时任务,那么:若应用现有技术,在执行待处理定时任务时,会从内存数据库的十万条定时任务进行查找,而应用申请中的一种容器内基于内存数据库的定时任务调度的优化方法,则首先通过调度决策容器从十万条定时任务中筛选出部分待处理定时任务,假如筛选出一千条待处理定时任务并将其分发至定时任务处理队列,此时执行处理容易从定时任务处理队列中的一千条待处理定时任务进行查找,很明显,相较于现有技术,本申请提升了调度待处理定时任务和执行待处理定时任务的效率的同时,也提高了执行待处理定时任务的准确性。
较优地,在上述技术方案中,还包括如下步骤:S100、通过设置运维界面对所述内存数据中的定时任务进行配置。
结合图3进行阐述,通过设置运维界面对所述内存数据中的定时任务进行配置,可灵活改变对定时任务的调度时间、可灵活改变定时任务的调度顺序,且在对定时任务进行配置如修改、删除、增加时,不需要现有技术中的需重新制作容器镜像并发布的过程,减少了容器镜像操作,提高了调度定时任务的效率,进而提高了调度待处理定时任务和执行待处理定时任务的准确性。
其中,可使用springMVC+spring+Mybatis编写运维界面,便于在内存数据库中增加或删除定时任务,以及对定时任务进行修改,即实现对内存数据中的定时任务进行配置。
较优地,还可以设置审核机制,当用户对内存数据库中定时任务进行上述形式的配置时,可首先通过审查机制对增加或删除定时任务、修改定时任务是否合理或是否存在错误,经审核机制审核通过后同步更新到内存数据库中。
较优地,在上述技术方案中,S12之后还包括如下步骤:S13、结合各所述待处理定时任务的任务属性相应生成各所述待处理定时任务的任务执行状态,并将各所述任务执行状态发送至状态数据库,并对所述状态数据库进行监测,能及时查看各待处理定时任务的任务执行状态。
结合图3进行阐述,其中,可将任务属性中的执行时间、类型和与其它定时任务之间的关联关系等中的一个信息或多个信息存入到任务执行状态中,任务执行状态的具体格式可为:
1)待处理定时任务编号-执行时间-相关联定时任务是否执行-执行状态-真实执行时间;
2)待处理定时任务编号-执行时间-类型-相关联定时任务是否执行-执行状态-真实执行时间;
3)待处理定时任务编号-相关联定时任务是否执行-执行状态-真实执行时间;
以及使用其它多种各式,其中,可人为设置待处理定时任务编号,“相关联定时任务是否执行”具体为:假如某一个待处理定时任务需在另外两个定时任务执行完毕后才能执行,则用来标记这两个相关联的定时任务是否已经执行完毕,“执行状态”中,用来标记该待处理定时任务是否已经执行;“执行时间”与“真实执行时间”的区别在于,执行时间为该待处理定时任务的所定下执行时间,真实执行时间为真实对该待处理定时任务进行执行的时间。
可以理解的是:由于是对定时任务进行筛选后得到待处理定时任务,因此,相关联的定时任务也可理解为相关联的待处理定时任务。
较优地,将内存数据库、定时任务处理队列和状态数据库均设置在内存中。
较优地,在上述技术方案中,S2中通过所述任务处理容器执行各所述待处理定时任务具体包括如下步骤:
S20、从所述状态数据库中获取各所述待处理定时任务所相应的各任务执行状态;
S21、结合各所述任务执行状态对各相应的待处理定时任务的任务属性进行分析,当满足执行条件时,执行各所述待处理定时任务,并更新所述状态数据库中相应的各任务执行状态。
在执行完待处理定时任务,对述状态数据库中相应的各任务执行状态进行更新,便于查看待处理定时任务的执行结果。
其中,以某个待处理定时任务为例,具体对“结合各所述任务执行状态对各相应的待处理定时任务的任务属性”进行阐述:
1)从该待处理定时任务相应的任务执行状态查看相关联定时任务是否执行;
若相关联定时任务均已执行完毕,根据待处理定时任务的任务属性中的类型,获取与该类型相应的方式来执行该待处理定时任务,此为现有技术,在此不做赘述,
2)从该待处理定时任务相应的任务执行状态查看相关联定时任务是否执行以及查看执行时间;
根据待处理定时任务的任务属性中的执行时间与任务执行状态的执行时间进行比较,判断是否一致,若一致,则执行该待处理定时任务,增强执行待处理定时任务的准确性。
当待处理定时任务完毕后,述状态数据库中相应的各任务执行状态进行更新,例如,将其中的执行状态从“未执行”更新为“已执行”,将“真实执行时间”进行填充等。
其中,可通过内核虚拟化技术:Linux Container容器、开源Linux容器:OpenVZ等容器技术来构建本申请实施例中的调度决策容器和任务处理容器。
如图4所示,本发明实施例的一种容器内基于内存数据库的定时任务调度的优化系统200,包括调度决策模块210和任务处理模块220;
所述调度决策模块210通过调度决策容器重复从内存数据库中获取至少一个待处理定时任务,并将其分发至定时任务处理队列;
所述任务处理模块220通过任务处理容器重复从所述定时任务处理队列中获取并执行各所述待处理定时任务。
调度决策模块210通过调度决策容器从内存数据库中获取各待处理定时任务并将其分发至定时任务处理队列,然后任务处理模块220通过任务处理容器从定时任务处理队列中获取并执行各待处理定时任务,通过调度决策模块210中的调度决策容器和任务处理模块220中的任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。
较优地,在上述技术方案中,所述调度决策模块210包括链表模块、筛选模块和分发模块;
所述链表模块用于在任一时刻从所述内存数据库内获取至少一个定时任务,并采用哈希链表算法对各所述定时任务进行处理后存储至链表,所述链表以所述时刻作为关键字、以存放各所述定时任务的任务结构作为相应的链表节点;
所述筛选模块采用无权最短路径算法对所述链表中的各所述定时任务的任务属性进行分析,并与当前时间进行比较后筛选出至少一个所述待处理定时任务;
所述分发模块通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列。
通过哈希链表算法便于将同一时间获取的各定时任务放在同一时刻下,在下一个时刻再将新获取的定时任务放在链表中下一个时刻所对应的任务结构中,不容易在调度定时任务时发生错误,然后利用用无权最短路径算法从各定时任务中筛选出待处理定时任务,最后通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列,保障了各待处理定时任务的快速分发处理及保证系统调度资源的均衡。而且,只需从定时任务处理队列就能获取待处理定时任务,而不需要从内存数据库获取,在提升了调度待处理定时任务和执行待处理定时任务的效率的同时,也提高了执行待处理定时任务的准确性。
较优地,在上述技术方案中,还包括运维模块,所述运维模块通过设置运维界面对所述内存数据中的定时任务进行配置。
通过设置运维界面对所述内存数据中的定时任务进行配置,可灵活改变对定时任务的调度时间、可灵活改变定时任务的调度顺序,且在对定时任务进行配置如修改、删除、增加时,不需要现有技术中的需重新制作容器镜像并发布的过程,减少了容器镜像操作,提高了调度定时任务的效率,进而提高了调度待处理定时任务和执行待处理定时任务的效率。
较优地,在上述技术方案中,还包括生成模块和监测模块,所述生成模块结合各所述待处理定时任务的任务属性相应生成各所述待处理定时任务的任务执行状态,所述分发模块将各所述任务执行状态发送至状态数据库,并通过所述监测模块对所述状态数据库进行监测,能及时查看各待处理定时任务的任务执行状态。
较优地,在上述技术方案中,所述任务处理模块220包括获取模块、分析模块和执行模块,所述获取模块从所述状态数据库中获取各所述待处理定时任务所相应的各任务执行状态,所述分析模块结合各所述任务执行状态对各相应的待处理定时任务的任务属性进行分析,当满足执行条件时,所述执行模块执行各所述待处理定时任务,并更新所述状态数据库中相应的各任务执行状态。
在执行完待处理定时任务,对述状态数据库中相应的各任务执行状态进行更新,便于查看待处理定时任务的执行结果。
且上述关于本发明的一种容器内基于内存数据库的定时任务调度的优化系统200的各参数和步骤,可参考上文中关于一种容器内基于内存数据库的定时任务调度的优化方法的实施例中的各参数和步骤,在此不做赘述。
本发明的一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的程序,所述处理器执行所述程序时实现上述任一实施例中的一种容器内基于内存数据库的定时任务调度的优化方法的步骤。
通过调度决策容器重复从内存数据库中获取各待处理定时任务并将其分发至定时任务处理队列,然后通过任务处理容器重复从定时任务处理队列中获取并执行各待处理定时任务,也就是说,通过设置调度决策容器和任务处理容器对调度待处理定时任务和执行待处理定时任务进行分开处理,提升了调度待处理定时任务和执行待处理定时任务的效率。
其中,电子设备可以选用电脑、手机等,相对应地,其程序为电脑软件或手机APP等。
且上述关于本发明的一种电子设备中的各参数和步骤,可参考上文中关于一种容器内基于内存数据库的定时任务调度的优化方法的实施例中的各参数和步骤,在此不做赘述。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种容器内基于内存数据库的定时任务调度的优化方法,其特征在于,包括如下步骤:
S1、通过调度决策容器重复从内存数据库中获取至少一个待处理定时任务,并将其分发至定时任务处理队列;
S2、通过任务处理容器重复从所述定时任务处理队列中获取并执行各所述待处理定时任务;
S1中通过所述调度决策容器具体执行如下步骤:
S10、任一时刻从所述内存数据库内获取至少一个定时任务,并采用哈希链表算法对各所述定时任务进行处理后存储至链表,所述链表以所述时刻作为关键字、以存放各所述定时任务的任务结构作为相应的链表节点;
S11、采用无权最短路径算法对所述链表中的各所述定时任务的任务属性进行分析,并结合当前时间筛选出至少一个所述待处理定时任务;
S12、通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列。
2.根据权利要求1所述的一种容器内基于内存数据库的定时任务调度的优化方法,其特征在于,还包括如下步骤:
S100、通过设置运维界面对所述内存数据库中的定时任务进行配置。
3.根据权利要求1或2所述的一种容器内基于内存数据库的定时任务调度的优化方法,其特征在于,S12之后还包括如下步骤:
S13、结合各所述待处理定时任务的任务属性相应生成各所述待处理定时任务的任务执行状态,并将各所述任务执行状态发送至状态数据库,并对所述状态数据库进行监测。
4.根据权利要求3所述的一种容器内基于内存数据库的定时任务调度的优化方法,其特征在于,S2中通过所述任务处理容器执行各所述待处理定时任务具体包括如下步骤:
S20、从所述状态数据库中获取各所述待处理定时任务所相应的各任务执行状态;
S21、结合各所述任务执行状态对各相应的待处理定时任务的任务属性进行分析,当满足执行条件时,执行各所述待处理定时任务,并更新所述状态数据库中相应的各任务执行状态。
5.一种容器内基于内存数据库的定时任务调度的优化系统,其特征在于,包括调度决策模块和任务处理模块;
所述调度决策模块通过调度决策容器重复从内存数据库中获取至少一个待处理定时任务,并将其分发至定时任务处理队列;
所述任务处理模块通过任务处理容器重复所述定时任务处理队列中获取并执行各所述待处理定时任务;
所述调度决策模块包括链表模块、筛选模块和分发模块;
所述链表模块用于在任一时刻从所述内存数据库内获取至少一个定时任务,并采用哈希链表算法对各所述定时任务进行处理后存储至链表,所述链表以所述时刻作为关键字、以存放各所述定时任务的任务结构作为相应的链表节点;
所述筛选模块采用无权最短路径算法对所述链表中的各所述定时任务的任务属性进行分析,并结合当前时间筛选出至少一个所述待处理定时任务;
所述分发模块通过反向服务代理器Nginx的负载均衡默认算法和加权轮询算法将各所述待处理定时任务分发至所述定时任务处理队列。
6.根据权利要求5所述的一种容器内基于内存数据库的定时任务调度的优化系统,其特征在于,还包括运维模块,所述运维模块通过设置运维界面对所述内存数据库中的定时任务进行配置。
7.根据权利要求5或6所述的一种容器内基于内存数据库的定时任务调度的优化系统,其特征在于,还包括生成模块和监测模块,所述生成模块结合各所述待处理定时任务的任务属性相应生成各所述待处理定时任务的任务执行状态,所述分发模块将各所述任务执行状态发送至状态数据库,并通过所述监测模块对所述状态数据库进行监测。
8.根据权利要求7所述的一种容器内基于内存数据库的定时任务调度的优化系统,其特征在于,所述任务处理模块包括获取模块、分析模块和执行模块,所述获取模块从所述状态数据库中获取各所述待处理定时任务所相应的各任务执行状态,所述分析模块结合各所述任务执行状态对各相应的待处理定时任务的任务属性进行分析,当满足执行条件时,所述执行模块执行各所述待处理定时任务,并更新所述状态数据库中相应的各任务执行状态。
CN202010048736.1A 2020-01-16 2020-01-16 容器内基于内存数据库的定时任务调度的优化方法及系统 Active CN111274013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010048736.1A CN111274013B (zh) 2020-01-16 2020-01-16 容器内基于内存数据库的定时任务调度的优化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010048736.1A CN111274013B (zh) 2020-01-16 2020-01-16 容器内基于内存数据库的定时任务调度的优化方法及系统

Publications (2)

Publication Number Publication Date
CN111274013A CN111274013A (zh) 2020-06-12
CN111274013B true CN111274013B (zh) 2022-05-03

Family

ID=71001726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010048736.1A Active CN111274013B (zh) 2020-01-16 2020-01-16 容器内基于内存数据库的定时任务调度的优化方法及系统

Country Status (1)

Country Link
CN (1) CN111274013B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256406B (zh) * 2020-12-08 2021-08-17 北京华云星地通科技有限公司 作业流程平台化调度方法
CN116489230B (zh) * 2023-06-28 2023-09-22 深圳前海环融联易信息科技服务有限公司 任务调度方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936618A (zh) * 2015-12-31 2017-07-07 北京神州泰岳软件股份有限公司 一种数据采集方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318268A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
CN104935658B (zh) * 2015-06-17 2018-05-08 交通银行股份有限公司 一种银行任务分配方法及装置
US10789097B2 (en) * 2017-02-16 2020-09-29 Nasdaq Technology Ab Methods and systems of scheduling computer processes or tasks in a distributed system
CN107193960B (zh) * 2017-05-24 2020-11-10 南京大学 一种分布式爬虫系统及周期性增量抓取方法
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置
CN109766196A (zh) * 2018-12-18 2019-05-17 深圳云天励飞技术有限公司 一种任务调度方法、装置及设备
CN110471774A (zh) * 2019-06-28 2019-11-19 苏宁云计算有限公司 一种基于统一任务调度的数据处理方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936618A (zh) * 2015-12-31 2017-07-07 北京神州泰岳软件股份有限公司 一种数据采集方法和系统

Also Published As

Publication number Publication date
CN111274013A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
US10146599B2 (en) System and method for a generic actor system container application
US20180276040A1 (en) Event-driven scheduling using directed acyclic graphs
CN108319460B (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
US11681507B2 (en) Composable context menus
CN111274013B (zh) 容器内基于内存数据库的定时任务调度的优化方法及系统
CN107085605B (zh) 用于数据打包的方法、装置及电子设备
CN111221550B (zh) 用于流式计算的规则更新方法、装置及流式计算系统
US20180302494A1 (en) Analytics driven update notification
US11550615B2 (en) Kubernetes resource policy enforcement
US20180082228A1 (en) Digital project management office
US11108638B1 (en) Health monitoring of automatically deployed and managed network pipelines
CN110569113A (zh) 分布式任务的调度方法及系统、计算机可读存储介质
CN113867600A (zh) 处理流式数据的开发方法、装置和计算机设备
CN111190732A (zh) 定时任务处理系统及方法、存储介质和电子设备
CN113377665A (zh) 基于容器技术的测试方法、装置、电子设备及存储介质
CN112596876A (zh) 一种任务调度方法、装置及相关设备
US11327788B2 (en) Methods for scheduling multiple batches of concurrent jobs
CN112559143A (zh) 任务调度方法、系统及计算设备
US11989542B2 (en) Enhancing operator installation and upgrade management and verification
CN114546588A (zh) 任务的部署方法、装置、存储介质及电子装置
CN111552494B (zh) 一种容器组的管理方法、设备、系统及介质
US20230134573A1 (en) Automated generation of dependency hierarchy based on input and output requirements of information
CN110365809B (zh) 分布式服务器地址配置系统及方法
EP3916540A1 (en) Compiling monoglot function compositions into a single entity
CN114115821A (zh) 应用开发方法及平台、应用部署方法及节点、系统及设备

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