CN112463312A - 一种定时任务的动态维护系统和方法、介质、计算设备 - Google Patents

一种定时任务的动态维护系统和方法、介质、计算设备 Download PDF

Info

Publication number
CN112463312A
CN112463312A CN202011204919.4A CN202011204919A CN112463312A CN 112463312 A CN112463312 A CN 112463312A CN 202011204919 A CN202011204919 A CN 202011204919A CN 112463312 A CN112463312 A CN 112463312A
Authority
CN
China
Prior art keywords
task
target
timing
monitoring
subsystem
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
Application number
CN202011204919.4A
Other languages
English (en)
Other versions
CN112463312B (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 Absolute Health Ltd
Original Assignee
Beijing Absolute Health 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 Absolute Health Ltd filed Critical Beijing Absolute Health Ltd
Priority to CN202011204919.4A priority Critical patent/CN112463312B/zh
Publication of CN112463312A publication Critical patent/CN112463312A/zh
Application granted granted Critical
Publication of CN112463312B publication Critical patent/CN112463312B/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种定时任务的动态维护系统和方法、介质、计算设备,在本发明提供的定时任务的动态维护系统包括任务管理子系统、包括多个任务执行单元的任务执行子系统以及消息监听子系统。基于本发明提供的定时任务的动态维护系统,通过设置消息监听子系统监听任务管理子系统和任务执行子系统的消息,可以实现定时任务相关信息的动态获取,并且通过任务管理子系统为各定时任务分配对应的任务执行单元,可以使得各任务执行单元节省因不必要的任务创建而占用的线程资源,防止任务创建过多导致的内存溢出问题。

Description

一种定时任务的动态维护系统和方法、介质、计算设备
技术领域
本发明涉及任务维护技术领域,尤其是一种定时任务的动态维护系统和方法、介质、计算设备。
背景技术
在执行定时任务,如自动化测试的过程中,需要根据项目加入情况自动添加定时测试任务,由于各项目对应的定时测试任务的执行时间不同,但测试的逻辑流程却是相同的。因此,需要动态维护系统实现定时任务的管理以及维护。
传统的分布式定时任务维护系统,不能实现动态生成定时任务,而且在定时任务注册过多情况下还会产生OOM(Out Of Memory,内存溢出)的问题,从而无法实现横向扩展。
发明内容
本发明实施例所要解决的一个技术问题是如何实现定时任务的动态维护。
根据本发明的一个方面,提供了一种定时任务的动态维护系统,包括:
任务执行子系统,包括多个任务执行单元,各所述任务执行单元用于动态创建定时任务;
任务管理子系统,用于为各任务执行单元创建的定时任务分配对应执行的任务执行单元;
消息监听子系统,分别连接所述任务执行子系统和所述任务管理子系统,用于监听所述任务管理子系统和所述任务执行子系统的消息,以实现所述任务管理子系统和所述任务执行子系统中各所述任务执行单元之间的消息传输。
可选地,所述消息监听子系统包括用于监听任一所述任务执行单元的消息的第一监听单元;
所述任务执行单元,用于根据任务创建指令创建目标定时任务;
所述任务管理子系统,用于经由所述第一监听单元监听到所述任务执行单元创建目标定时任务的任务创建消息后,生成所述目标定时任务的任务调度消息;
其中,所述任务调度消息中包括所述目标定时任务,以及执行所述目标定时任务的目标任务执行单元。
可选地,所述任务管理子系统,还用于:获取各所述任务执行单元的运行状态信息,基于所述运行状态信息在多个所述任务执行单元中选取执行所述目标定时任务的目标任务执行单元;其中,所述运行状态信息包括执行任务数量和/或硬件状态信息;
生成包含有定时任务和执行所述定时任务的任务执行单元的任务调度消息。
可选地,所述任务管理子系统,还用于:经由所述第一监听单元监听到所述任务执行单元创建目标定时任务的任务创建消息后,在所述消息监听子系统中创建所述目标定时任务的目标任务管理节点;
通过所述目标任务管理节点监控所述目标定时任务的任务状态。
可选地,所述消息监听子系统还包括用于监听所述任务管理子系统的消息的第二监听单元;所述任务执行单元,还用于:经由所述第二监听单元监听所述任务管理子系统的任务调度消息,根据所述任务调度消息解析出目标定时任务,并在对应的任务监控节点中创建所述目标定时任务的任务子节点;
在所述任务子节点中存储所述目标定时任务的任务信息。
可选地,所述系统还包括数据库;所述任务管理子系统,还用于:经由所述第一监听单元获取所述目标定时任务的任务信息,将所述目标定时任务的任务信息存入所述数据库;
经由所述第二监听单元获取所述目标定时任务的执行信息,将所述执行信息存入所述数据库。
可选地,所述任务管理子系统,还用于:经由所述第一监听单元监听所述目标任务管理节点中针对所述目标定时任务的任务信息的修改事件,并获取所述目标定时任务的修改后的新任务信息;
通过所述第二监听单元将所述定时任务的新任务信息同步至所述目标定时任务在所述任务监控节点中的任务子节点,由所述目标任务执行单元根据所述新任务信息执行所述目标定时任务。
可选地,所述任务管理子系统,还用于:经由所述第一监听单元监听到所述目标任务管理节点的删除事件时,删除所述数据库中所述目标定时任务的任务信息和/或执行信息;
通过所述第二监听单元向所述目标任务执行单元发生目标定时任务的删除消息,由所述目标任务执行单元删除所述目标定时任务在所述任务监控节点中的任务子节点。
根据本发明的另一个方面,还提供了一种定时任务的动态维护方法,包括:
监听任一任务执行单元创建目标定时任务的任务创建消息;
将所述任务创建消息发送至任务管理子系统,通过所述任务管理子系统根据所述任务创建消息生成所述目标定时任务的任务调度消息;其中,所述任务调度消息中包括所述目标定时任务,以及执行所述目标定时任务的目标任务执行单元;
将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元执行所述目标定时任务。
可选地,所述通过所述任务管理子系统根据所述任务创建消息生成所述目标定时任务的任务调度消息,包括:
获取各所述任务执行单元的运行状态信息,通过所述任务管理子系统基于所述运行状态信息在多个所述任务执行单元中选取执行所述目标定时任务的目标任务执行单元;其中,所述运行状态信息包括执行任务数量和/或硬件状态信息;
生成包含有定时任务和执行所述定时任务的任务执行单元的任务调度消息。
可选地,所述监听任一任务执行单元创建目标定时任务的任务创建消息之后,还包括:
创建所述目标定时任务的目标任务管理节点;
通过所述目标任务管理节点监控所述目标定时任务的任务状态。
可选地,所述将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元执行所述目标定时任务,包括:
将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元根据所述任务调度消息解析出目标定时任务,并在对应的任务监控节点中创建所述目标定时任务的任务子节点;
在所述任务子节点中存储所述目标定时任务的任务信息,通过所述目标任务执行单元根据所述任务子节点的任务信息执行所述目标定时任务。
可选地,所述方法还包括:
获取所述目标定时任务的任务信息,将所述目标定时任务的任务信息存入数据库;
获取所述目标定时任务的执行信息,将所述执行信息存入数据库。
可选地,所述方法还包括:
监听所述目标任务管理节点中针对所述目标定时任务的任务信息的修改事件,并获取所述目标定时任务的修改后的新任务信息;
将所述定时任务的新任务信息同步至所述目标定时任务在所述任务监控节点中的任务子节点,由所述目标任务执行单元根据所述新任务信息执行所述目标定时任务。
可选地,所述方法还包括:
监听到所述目标任务管理节点的删除事件时,删除所述数据库中所述目标定时任务的任务信息和/或执行信息;
向所述目标任务执行单元发生目标定时任务的删除消息,由所述目标任务执行单元删除所述目标定时任务在所述任务监控节点中的任务子节点。
可选地,所述方法还包括:
定期同步所述目标定时任务在所述任务监控节点、任务管理节点和所述数据库中的任务信息和/或执行信息。
根据本发明的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述任一项所述的定时任务的动态维护方法。
根据本发明的又一个方面,还提供了一种计算设备,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述任一项所述的定时任务的动态维护方法。
本发明提供了一种定时任务的动态维护系统和方法、介质、计算设备,在本发明提供的定时任务的动态维护系统中,通过设置消息监听子系统监听任务管理子系统和任务执行子系统的消息,可以实现定时任务相关信息的动态获取,并且通过任务管理子系统为各定时任务分配对应的任务执行单元,可以使得各任务执行单元节省不必要的任务创建来占用的线程资源,防止任务创建过多导致的内存溢出OOM问题。
进一步地,基于本发明提供的系统还可以实现定时任务的横向扩展,动态生成定时任务、以及定时任务的动态修改和删除,实现定时任务的动态维护。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出了根据本发明一实施例的定时任务的动态维护系统结构示意图;
图2示出了根据本发明另一实施例的定时任务的动态维护系统结构示意图;
图3示出了根据本发明一实施例的定时任务的动态维护方法流程示意图;
图4示出了根据本发明另一实施例的定时任务的动态维护方法流程示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序组件)的一般语境下描述。通常,程序组件可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序组件可以位于包括存储设备的本地或远程计算系统存储介质上。
本发明实施例提供了一种定时任务的动态维护系统,如图1所示,该系统可以包括:任务管理子系统110,任务执行子系统120以及消息监听子系统130。其中,任务执行子系统120,可以包括多个任务执行单元121,各任务执行单元121用于动态创建定时任务。任务管理子系统110用于为各任务执行单元121创建的定时任务分配对应执行的任务执行单元。消息监听子系统130,分别连接任务执行子系统120和任务管理子系统110,用于监听任务管理子系统110和任务执行子系统120的消息,以实现任务管理子系统110和任务执行子系统120中各任务执行单元121之间的消息传输。其中,各任务执行单元121可作为服务器,以执行各自的定时任务。定时任务可以包括测试任务、财务的数据统计任务等定时执行的任务。
本发明实施例提供了一种定时任务的动态维护系统,通过设置消息监听子系统130监听任务管理子系统110和任务执行子系统120的消息,可以实现定时任务相关信息的动态获取,并且通过任务管理子系统110为各定时任务分配对应的任务执行单元121,可以使得各任务执行单元121节省不必要的任务创建来占用的线程资源,防止任务创建过多导致的内存溢出OOM问题。
本发明实施例提供的定时任务的动态维护系统可以基于elasticJob构建,elastic-job是开源的一个分布式弹性作业框架,是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目ElasticJob-Lite和ElasticJob-Cloud组成。它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。它的各个产品使用统一的作业API,开发者仅需一次开发,即可随意部署。
在本发明实施例中,任务执行子系统120中的各任务执行单元121可作为Job,进行定时任务的创建以及执行,任务管理子系统110可以作为JobAdmin,进行各定时任务的调度和管理。另外,消息监控子系统可以基于zookeeper实现,zookeeper,是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。本发明实施例提供的系统,通过使用zookeeper的监听功能实现对任务管理子系统110和任务执行子系统120中各任务执行单元121的消息监听。
在本发明实施例中,如图2所示,消息监听子系统130可以包括第一监听单元131和第二监听单元132,其中,第一监听单元131用于监听任务执行子系统120中任一任务执行单元121的消息,第二监听单元132用于监听任务管理子系统110的消息。也就是说,可以在消息监听子系统130新增两个监听任务JobListener,一用于对JobAdmin的相关消息的监听,一个是对Job的相关消息的监听。其中,第一监听单元131中可以设置多个监听进程,各监听进程可以对应一个任务执行单元121,或是对应多个任务执行单元121,具体可以根据不同需求进行设置。
在本发明一可选实施例中,任务执行单元121用于根据任务创建指令创建目标定时任务。即,可以利用任务执行子系统120中的任一任务执行单元121创建定时任务。
任务管理子系统110,还用于经由第一监听单元131监听到任务执行单元121创建目标定时任务的任务创建消息后,生成目标定时任务的任务调度消息。其中,任务调度消息中包括目标定时任务,以及执行目标定时任务的目标任务执行单元。也就是说,在任务管理子系统110监听到任一任务执行单元121创建目标定时任务后,可分配执行该目标定时任务分配的任务执行单元121。
实际应用中,任务管理子系统110可以设置有RPC(Remote Procedure Call,远程过程调用)接口,任务执行单元121可以基于RPC接口调用任务管理子系统110,进而由任务管理子系统110通过第一监听单元131监听任务执行单元121创建目标定时任务的任务创建消息。
可选地,任务管理子系统110生成任务调度消息时,可以获取各任务执行单元121的运行状态信息,基于运行状态信息在多个任务执行单元121中选取执行目标定时任务的目标任务执行单元;其中,运行状态信息包括执行任务数量和/或硬件状态信息;生成包含有定时任务和执行定时任务的任务执行单元121的任务调度消息。
基于本发明实施例提供的方案,任务管理子系统110会根据各任务执行单元121当前的执行任务的数量,以及任务执行单元121所对应服务器的效能、运行速度、服务器性能等作为参考依据进行分配,以在进行定时任务分配的同时实现各任务执行单元121的负载均衡。
在本发明一可选实施例中,任务管理子系统110,还用于经由第一监听单元131监听到任务执行单元121创建目标定时任务的任务创建消息后,在消息监听子系统130中创建目标定时任务的目标任务管理节点;通过目标任务管理节点监控目标定时任务的任务状态。
也就是说,在任一任务执行单元121创建定时任务A时,均可以在消息监听子系统130中创建对应于该定时任务A的任务管理节点A,当通过第一监听单元131监听到有新的任务管理节点A创建时,可以分析现有的各任务执行单元121的任务数量,进而由任务管理子系统110分配执行,以确定任务管理节点A中定时任务A的任务执行单元A,同时生成任务执行单元A执行任务A的任务调度消息。
定时任务A对应的任务管理节点A相当于标志定时任务A的存活状态,任务管理子系统110可以通过任务管理节点A判断定时任务A是否持续执行、是否修改、是否删除等相关任务状态。
进一步地,任务执行单元121,还可以用于经由第二监听单元132监听任务管理子系统110的任务调度消息,根据任务调度消息解析出定时任务,并在对应的任务监控节点中创建定时任务的任务子节点;在任务子节点中存储目标定时任务的任务信息。该任务执行单元121可以理解为任务调度消息中的执行目标定时任务的目标任务执行单元。
在本发明实施例中,各任务执行单元121在消息监控子系统中均可具有相对应的任务监控节点,当任一任务执行单元121检测到任务管理子系统110分配的定时任务后,可在对应的任务监控节点中创建该定时任务的任务子节点,便于后期进行查看与执行。该任务子节点中可以记录有对应定时任务的任务信息,如执行时间、执行次数、执行周期、任务类型等等。
继续以上述实施例中任务管理子系统110生成任务执行单元A执行任务A的任务调度消息为例。任务执行单元A作为定时任务A的任务执行方,需要在消息监控子系统中任务执行单元A对应的任务监控节点A中新建任务子节点,并录入对应的任务信息。任务执行单元A会定期更新查看其对应的任务监控节点A中所包含的各任务子节点,进而执行各任务子节点对应的定时任务。
上述实施例中针对目标定时任务的创建以及执行过程进行了介绍,实际应用中,任务执行子系统120中的每个任务执行单元121均创建定时任务,并可以经由第二监听单元132分配的自身的定时任务,且任务执行单元121的数量以及各自所分配的定时任务可以根据不同的应用场景进行设置,本发明对此不做限定。
本发明实施例提供的定时任务的动态维护系统中,还可以设置有数据库,具体可以是MySQL分布式数据库。任务管理子系统110,还用于经由第一监听单元131获取目标定时任务的任务信息,将目标定时任务的任务信息存入数据库;经由第二监听单元132获取目标定时任务的执行信息,将执行信息存入数据库。
本发明实施例中,通过将定时任务的任务信息以及执行信息存储到数据库中,可以保证消息监控子系统产生宕机时,定时任务的相关数据也不会丢失,只需要从数据库中进行检查同步就可以将数据同步至消息监控子系统的各定时任务对应的任务管理节点以及任务监控节点。可选地,本发明实施例中还可以定时检查消息监控子系统中任务管理节点、任务监控节点中的数据与数据库中存储的数据是否一致,如消息监控子系统的各节点记录的数据和数据库对于同一定时任务的数据存在不同,则会进行插入、修改、删除等相应的操作,保证任务数据的统一。
在本发明一可选实施例中,任务管理子系统110,还可以用于经由第一监听单元131监听目标任务管理节点中针对目标定时任务的任务信息的修改事件,并获取目标定时任务的修改后的新任务信息;通过第二监听单元132将定时任务的新任务信息同步至目标定时任务在任务监控节点中的任务子节点,由目标任务执行单元根据新任务信息执行目标定时任务。
也就是说,当针对目标定时任务的任务管理节点触发修改操作时,会触发消息监听子系统130的对应的任务监控节点中的任务子节点的修改事件以对任务信息进行修改,从而使得对应的任务执行单元121根据相对应进行修改后的任务信息执行定时任务。
任务管理子系统110,还用于经由第一监听单元131监听到目标任务管理节点的删除事件时,删除数据库中目标定时任务的任务信息和/或执行信息;通过第二监听单元132向目标任务执行单元发生目标定时任务的删除消息,由目标任务执行单元删除目标定时任务在任务监控节点中的任务子节点。
假设任务管理节点发生销毁时,则会可以通过RPC接口调用任务管理子系统110进行删除处理,即,可以将数据库中任务管理节点对应的任务信息、执行信息等数据进行删除,并将定时任务对应的任务管理节点以及任务监控节点中的任务子节点删除。基于本发明实施例提供的系统,在执行任务修改以及任务删除时,只需对相应的任务管理节点进行对应的操作后,通过消息监听子系统130进行消息监听即可实现对相关任务信息的修改及删除,能够及时更新任务的状态及信息,从而有效实现定时任务的动态维护。
基于同一发明构思,本发明实施例还提供了一种定时任务的动态维护方法,可应用于上述任一实施例介绍的定时任务的动态维护系统。参见图3可知,本发明实施例提供的定时任务的动态维护方法至少可以包括以下步骤S302~步骤S306。
步骤S302,监听任一任务执行单元创建目标定时任务的任务创建消息。
本发明实施例中的任务执行单元可以以服务器的形式设置于定时任务的动态维护系统中,该系统可基于elasticJob构建,任务执行单元作为Job,进行定时任务的创建以及执行。任务执行单元创建目标定时任务时,可以响应于用户的操作进行创建,例如创建执行时间为每2小时执行一次,执行参数为test的定时检测任务。
进一步地,在上述步骤S302监听到任一任务执行单元的任务创建消息之后,还可以创建目标定时任务的目标任务管理节点;通过目标任务管理节点监控目标定时任务的任务状态。本发明实施例提供的方法zookeeper的监听功能实现对任务管理子系统和任务执行子系统中各任务执行单元的消息监听,在监听到任一任务执行单元的任务创建消息之后,可以在zookeeper的消息监听子系统中创建对应于目标定时任务的任务管理节点,由此,任务管子系统就可以通过目标任务管理节点监控目标定时任务的任务状态。
步骤S304,将任务创建消息发送至任务管理子系统,通过任务管理子系统根据任务创建消息生成目标定时任务的任务调度消息;其中,任务调度消息中包括目标定时任务,以及执行目标定时任务的目标任务执行单元。也就是说,在任务管理子系统监听到任一任务执行单元创建目标定时任务后,可分配执行该目标定时任务分配的任务执行单元。
可选地,任务管理子系统生成任务调度消息时,可以获取各任务执行单元的运行状态信息,通过任务管理子系统基于运行状态信息在多个任务执行单元中选取执行目标定时任务的目标任务执行单元;其中,运行状态信息包括执行任务数量和/或硬件状态信息;生成包含有定时任务和执行定时任务的任务执行单元的任务调度消息。
基于本发明实施例提供的方法,任务管理子系统会根据各任务执行单元当前的执行任务的数量,以及任务执行单元所对应服务器的效能、运行速度、服务器性能等作为参考依据进行分配,以在进行定时任务分配的同时实现各任务执行单元的负载均衡。
步骤S306,将任务调度消息发送至目标任务执行单元,通过目标任务执行单元执行目标定时任务。
最后,确定执行目标定时任务的目标任务执行单元时,就可以将任务调度消息发送至目标任务执行单元,以执行该目标定时任务。
在本发明可选实施例中,将任务调度消息发送至目标任务执行单元之后,可以通过目标任务执行单元根据任务调度消息解析出目标定时任务,并在对应的任务监控节点中创建目标定时任务的任务子节点;在任务子节点中存储目标定时任务的任务信息,通过目标任务执行单元根据任务子节点的任务信息执行目标定时任务。
在本发明实施例中,各任务执行单元在消息监控子系统中均可具有相对应的任务监控节点,当任一任务执行单元检测到任务管理子系统分配的定时任务后,可在对应的任务监控节点中创建该定时任务的任务子节点,便于后期进行查看与执行。该任务子节点中可以记录有对应定时任务的任务信息,如执行时间、执行次数、执行周期、任务类型等等。
可选地,对于各定时任务的任务信息以及相关的执行信息可以进行单独存储,即,获取目标定时任务的任务信息,将目标定时任务的任务信息存入数据库;以及获取目标定时任务的执行信息,将执行信息存入数据库。通过将定时任务的任务信息以及执行信息存储到数据库中,可以保证消息监控子系统产生宕机时,定时任务的相关数据也不会丢失,只需要从数据库中进行检查同步就可以将数据同步至消息监控子系统的各定时任务对应的任务管理节点以及任务监控节点。
可选地,本发明实施例中还可以定期同步目标定时任务在任务监控节点、任务管理节点和数据库中的任务信息和/或执行信息。具体地,可以定期检查消息监控子系统中任务管理节点、任务监控节点中的数据与数据库中存储的数据是否一致,如消息监控子系统的各节点记录的数据和数据库对于同一定时任务的数据存在不同,则会基于不同的数据进行插入、修改、删除等相应的操作,保证任务数据的统一。例如,可以以数据对应的时间作为更新依据,进而基于新生成的数据更新原有的旧数据。
在本发明另一可选实施例中,还可以对定时任务执行修改操作。即监听目标任务管理节点中针对目标定时任务的任务信息的修改事件,并获取目标定时任务的修改后的新任务信息;将定时任务的新任务信息同步至目标定时任务在任务监控节点中的任务子节点,由目标任务执行单元根据新任务信息执行目标定时任务。
也就是说,当针对目标定时任务的任务管理节点触发修改操作时,会触发消息监听子系统的对应的任务监控节点中的任务子节点的修改事件以对任务信息进行修改,从而使得对应的任务执行单元根据相对应进行修改后的任务信息执行定时任务。
另外,本发明实施例提供的方法中,还可以在监听到目标任务管理节点的删除事件时,删除数据库中目标定时任务的任务信息和/或执行信息;向目标任务执行单元发生目标定时任务的删除消息,由目标任务执行单元删除目标定时任务在任务监控节点中的任务子节点。
假设任务管理节点发生销毁时,可以将数据库中任务管理节点对应的任务信息、执行信息等数据进行删除,并将定时任务对应的任务管理节点以及任务监控节点中的任务子节点删除。基于本发明实施例提供的方法,在执行任务修改以及任务删除时,只需对相应的任务管理节点进行对应的操作后,通过消息监听子系统进行消息监听即可实现对相关任务信息的修改及删除,能够及时更新任务的状态及信息,从而有效实现定时任务的动态维护。实现定时任务的横向扩展,动态生成定时任务、以及定时任务的动态修改和删除,实现定时任务的动态维护。
图4示出了根据本发明另一实施例的定时任务的动态维护方法流程示意图,本发明实施例提供的定时任务的动态维护方法应用于定时任务的动态维护系统,该系统可以包括任务管理子系统JobAdmin,任务执行子系统,包括多个任务执行单元Job,消息监听子系统zookeeper以及数据库MySQL,消息监听子系统zookeeper包括两个监听单元JobListener1和JobListener2。
参加图4可知,本发明实施例提供的定时任务的动态维护方法可以包括:
步骤S402,通过JobListener1监听任意一个Job新建第一定时任务的任务创建消息;
步骤S404,JobAdmin将各任务创建消息对应的任务信息存入MySQL中;
步骤S406,通过JobListener1获取各Job的运行状态信息,由JobAdmin基于上述运行状态信息确定执行各第一定时任务的Job;
步骤S408,JobAdmin针对JobListener1监听到的各任务创建消息生成对应在zookeeper中建立对应的任务管理节点,即zk节点;通过任务管理节点可以获取各第一定时任务的存活状态以及执行状态等等;
步骤S410,Job根据JobListener2监听JobAdmin分配的任务调度消息,基于任务调度消息在该Job对应的zookeeper的任务监控节点中创建分配的第一定时任务的任务子节点;该任务子节点记录有第一定时任务的任务信息;
步骤S412,通过JobListener1监听第一定时任务的任务信息以及执行信息,并存入对应子任务节点以及数据库。
步骤S414,通过JobListener1监听针对任一定时任务对应的任务管理节点的删除消息,由JobAdmin删除该任务管理节点;
步骤S416,删除数据库中存储的步骤S414删除的任务管理节点对应的第二定时任务的相关数据,如任务信息和执行信息;
步骤S418,通过JobListener2向对应的Job发送第二定时任务的删除消息,由该Job删除与第二定时任务对应任务子节点。
基于本发明实施例提供的方法,使用zk的监听节点功能,监听到任务管理节点的变化来判断是否要新建定时任务还是修改定时任务或者删除定时任务,从而实现分布式定时任务的动态创建、删除或是修改,并且各定时任务对应的数据会存储到mysql中,能够保证zk如果宕机定时任务的执行数据也不会丢失,只要将mysql数据重新检查一次同步到新zk上就可以使用。
进一步地,JobAdmin会结合各Job的运行状态信息合理地将各定时任务分配到各个Jon上进行执行,并且通过JobListener1启动监听,监听JobAdmin分配的任务是否对应的Job的任务,如果是分配到该Job的定时任务,则创建对应的定时任务。这样Job的服务器节省了不必要的任务创建来占用的线程资源,防止了任务创建过多导致的OOM问题。
在本发明一可选实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行上述任一实施例的定时任务的动态维护方法。
在本发明一可选实施例中,还提供了一种计算设备,计算设备包括处理器以及存储器:
存储器用于存储程序代码,并将程序代码传输给处理器;
处理器用于根据程序代码中的指令执行上述任一实施例的定时任务的动态维护方法。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
本发明实施例还包括在下列编号条款中规定的这些和其他方面:
1、一种定时任务的动态维护系统,包括:
任务执行子系统,包括多个任务执行单元,各所述任务执行单元用于动态创建定时任务;
任务管理子系统,用于为各任务执行单元创建的定时任务分配对应执行的任务执行单元;
消息监听子系统,分别连接所述任务执行子系统和所述任务管理子系统,用于监听所述任务管理子系统和所述任务执行子系统的消息,以实现所述任务管理子系统和所述任务执行子系统中各所述任务执行单元之间的消息传输。
2、根据条款1所述的系统,所述消息监听子系统包括用于监听任一所述任务执行单元的消息的第一监听单元;
所述任务执行单元,用于根据任务创建指令创建目标定时任务;
所述任务管理子系统,用于经由所述第一监听单元监听到所述任务执行单元创建目标定时任务的任务创建消息后,生成所述目标定时任务的任务调度消息;
其中,所述任务调度消息中包括所述目标定时任务,以及执行所述目标定时任务的目标任务执行单元。
3、根据条款2所述的系统,所述任务管理子系统还用于:
获取各所述任务执行单元的运行状态信息,基于所述运行状态信息在多个所述任务执行单元中选取执行所述目标定时任务的目标任务执行单元;其中,所述运行状态信息包括执行任务数量和/或硬件状态信息;
生成包含有定时任务和执行所述定时任务的任务执行单元的任务调度消息。
4、根据条款2所述的系统,所述任务管理子系统还用于:
经由所述第一监听单元监听到所述任务执行单元创建目标定时任务的任务创建消息后,在所述消息监听子系统中创建所述目标定时任务的目标任务管理节点;
通过所述目标任务管理节点监控所述目标定时任务的任务状态。
5、根据条款4所述的系统,所述消息监听子系统还包括用于监听所述任务管理子系统的消息的第二监听单元;所述任务执行单元还用于:
经由所述第二监听单元监听所述任务管理子系统的任务调度消息,根据所述任务调度消息解析出目标定时任务,并在对应的任务监控节点中创建所述目标定时任务的任务子节点;
在所述任务子节点中存储所述目标定时任务的任务信息。
6、根据条款5所述的系统,所述系统还包括数据库;所述任务管理子系统还用于:
经由所述第一监听单元获取所述目标定时任务的任务信息,将所述目标定时任务的任务信息存入所述数据库;
经由所述第二监听单元获取所述目标定时任务的执行信息,将所述执行信息存入所述数据库。
7、根据条款6所述的系统,所述任务管理子系统还用于:
经由所述第一监听单元监听所述目标任务管理节点中针对所述目标定时任务的任务信息的修改事件,并获取所述目标定时任务的修改后的新任务信息;
通过所述第二监听单元将所述定时任务的新任务信息同步至所述目标定时任务在所述任务监控节点中的任务子节点,由所述目标任务执行单元根据所述新任务信息执行所述目标定时任务。
8、根据条款6所述的系统,所述任务管理子系统还用于:
经由所述第一监听单元监听到所述目标任务管理节点的删除事件时,删除所述数据库中所述目标定时任务的任务信息和/或执行信息;
通过所述第二监听单元向所述目标任务执行单元发生目标定时任务的删除消息,由所述目标任务执行单元删除所述目标定时任务在所述任务监控节点中的任务子节点。
9、一种定时任务的动态维护方法,包括:
监听任一任务执行单元创建目标定时任务的任务创建消息;
将所述任务创建消息发送至任务管理子系统,通过所述任务管理子系统根据所述任务创建消息生成所述目标定时任务的任务调度消息;其中,所述任务调度消息中包括所述目标定时任务,以及执行所述目标定时任务的目标任务执行单元;
将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元执行所述目标定时任务。
10、根据条款9所述的方法,所述通过所述任务管理子系统根据所述任务创建消息生成所述目标定时任务的任务调度消息,包括:
获取各所述任务执行单元的运行状态信息,通过所述任务管理子系统基于所述运行状态信息在多个所述任务执行单元中选取执行所述目标定时任务的目标任务执行单元;其中,所述运行状态信息包括执行任务数量和/或硬件状态信息;
生成包含有定时任务和执行所述定时任务的任务执行单元的任务调度消息。
11、根据条款9所述的方法,所述监听任一任务执行单元创建目标定时任务的任务创建消息之后,还包括:
创建所述目标定时任务的目标任务管理节点;
通过所述目标任务管理节点监控所述目标定时任务的任务状态。
12、根据条款11所述的方法,所述将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元执行所述目标定时任务,包括:
将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元根据所述任务调度消息解析出目标定时任务,并在对应的任务监控节点中创建所述目标定时任务的任务子节点;
在所述任务子节点中存储所述目标定时任务的任务信息,通过所述目标任务执行单元根据所述任务子节点的任务信息执行所述目标定时任务。
13、根据条款12所述的方法,所述方法还包括:
获取所述目标定时任务的任务信息,将所述目标定时任务的任务信息存入数据库;
获取所述目标定时任务的执行信息,将所述执行信息存入数据库。
14、根据条款13所述的方法,所述方法还包括:
监听所述目标任务管理节点中针对所述目标定时任务的任务信息的修改事件,并获取所述目标定时任务的修改后的新任务信息;
将所述定时任务的新任务信息同步至所述目标定时任务在所述任务监控节点中的任务子节点,由所述目标任务执行单元根据所述新任务信息执行所述目标定时任务。
15、根据条款13所述的方法,所述方法还包括:
监听到所述目标任务管理节点的删除事件时,删除所述数据库中所述目标定时任务的任务信息和/或执行信息;
向所述目标任务执行单元发生目标定时任务的删除消息,由所述目标任务执行单元删除所述目标定时任务在所述任务监控节点中的任务子节点。
16、根据条款13所述的方法,所述方法还包括:
定期同步所述目标定时任务在所述任务监控节点、任务管理节点和所述数据库中的任务信息和/或执行信息。
17、一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行条款9-16任一项所述的定时任务的动态维护方法。
18、一种计算设备,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行条款9-16任一项所述的定时任务的动态维护方法。

Claims (10)

1.一种定时任务的动态维护系统,其特征在于,包括:
任务执行子系统,包括多个任务执行单元,各所述任务执行单元用于动态创建定时任务;
任务管理子系统,用于为各任务执行单元创建的定时任务分配对应执行的任务执行单元;
消息监听子系统,分别连接所述任务执行子系统和所述任务管理子系统,用于监听所述任务管理子系统和所述任务执行子系统的消息,以实现所述任务管理子系统和所述任务执行子系统中各所述任务执行单元之间的消息传输。
2.根据权利要求1所述的系统,其特征在于,所述消息监听子系统包括用于监听任一所述任务执行单元的消息的第一监听单元;
所述任务执行单元,用于根据任务创建指令创建目标定时任务;
所述任务管理子系统,用于经由所述第一监听单元监听到所述任务执行单元创建目标定时任务的任务创建消息后,生成所述目标定时任务的任务调度消息;
其中,所述任务调度消息中包括所述目标定时任务,以及执行所述目标定时任务的目标任务执行单元。
3.根据权利要求2所述的系统,其特征在于,所述任务管理子系统还用于:
获取各所述任务执行单元的运行状态信息,基于所述运行状态信息在多个所述任务执行单元中选取执行所述目标定时任务的目标任务执行单元;其中,所述运行状态信息包括执行任务数量和/或硬件状态信息;
生成包含有定时任务和执行所述定时任务的任务执行单元的任务调度消息。
4.根据权利要求2所述的系统,其特征在于,所述任务管理子系统还用于:
经由所述第一监听单元监听到所述任务执行单元创建目标定时任务的任务创建消息后,在所述消息监听子系统中创建所述目标定时任务的目标任务管理节点;
通过所述目标任务管理节点监控所述目标定时任务的任务状态。
5.根据权利要求4所述的系统,其特征在于,所述消息监听子系统还包括用于监听所述任务管理子系统的消息的第二监听单元;所述任务执行单元还用于:
经由所述第二监听单元监听所述任务管理子系统的任务调度消息,根据所述任务调度消息解析出目标定时任务,并在对应的任务监控节点中创建所述目标定时任务的任务子节点;
在所述任务子节点中存储所述目标定时任务的任务信息。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括数据库;所述任务管理子系统还用于:
经由所述第一监听单元获取所述目标定时任务的任务信息,将所述目标定时任务的任务信息存入所述数据库;
经由所述第二监听单元获取所述目标定时任务的执行信息,将所述执行信息存入所述数据库。
7.根据权利要求6所述的系统,其特征在于,所述任务管理子系统还用于:
经由所述第一监听单元监听所述目标任务管理节点中针对所述目标定时任务的任务信息的修改事件,并获取所述目标定时任务的修改后的新任务信息;
通过所述第二监听单元将所述定时任务的新任务信息同步至所述目标定时任务在所述任务监控节点中的任务子节点,由所述目标任务执行单元根据所述新任务信息执行所述目标定时任务。
8.一种定时任务的动态维护方法,其特征在于,包括:
监听任一任务执行单元创建目标定时任务的任务创建消息;
将所述任务创建消息发送至任务管理子系统,通过所述任务管理子系统根据所述任务创建消息生成所述目标定时任务的任务调度消息;其中,所述任务调度消息中包括所述目标定时任务,以及执行所述目标定时任务的目标任务执行单元;
将所述任务调度消息发送至所述目标任务执行单元,通过所述目标任务执行单元执行所述目标定时任务。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求8所述的定时任务的动态维护方法。
10.一种计算设备,其特征在于,所述计算设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求8所述的定时任务的动态维护方法。
CN202011204919.4A 2020-11-02 2020-11-02 一种定时任务的动态维护系统和方法、介质、计算设备 Active CN112463312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011204919.4A CN112463312B (zh) 2020-11-02 2020-11-02 一种定时任务的动态维护系统和方法、介质、计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011204919.4A CN112463312B (zh) 2020-11-02 2020-11-02 一种定时任务的动态维护系统和方法、介质、计算设备

Publications (2)

Publication Number Publication Date
CN112463312A true CN112463312A (zh) 2021-03-09
CN112463312B CN112463312B (zh) 2024-07-23

Family

ID=74834891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011204919.4A Active CN112463312B (zh) 2020-11-02 2020-11-02 一种定时任务的动态维护系统和方法、介质、计算设备

Country Status (1)

Country Link
CN (1) CN112463312B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691241A (zh) * 2022-04-19 2022-07-01 中煤航测遥感集团有限公司 任务执行方法、装置、电子设备及存储介质
WO2024159940A1 (zh) * 2023-01-30 2024-08-08 合众新能源汽车股份有限公司 云端计算任务的调度系统、方法和计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762931A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 基于分布式调度系统的任务调度方法、服务器及存储介质
CN111290854A (zh) * 2020-01-20 2020-06-16 腾讯科技(深圳)有限公司 任务管理方法、装置、系统、计算机存储介质及电子设备
CN111381972A (zh) * 2018-12-27 2020-07-07 北京奇虎科技有限公司 分布式任务调度方法、装置和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108762931A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 基于分布式调度系统的任务调度方法、服务器及存储介质
CN111381972A (zh) * 2018-12-27 2020-07-07 北京奇虎科技有限公司 分布式任务调度方法、装置和系统
CN111290854A (zh) * 2020-01-20 2020-06-16 腾讯科技(深圳)有限公司 任务管理方法、装置、系统、计算机存储介质及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114691241A (zh) * 2022-04-19 2022-07-01 中煤航测遥感集团有限公司 任务执行方法、装置、电子设备及存储介质
CN114691241B (zh) * 2022-04-19 2024-01-19 中煤航测遥感集团有限公司 任务执行方法、装置、电子设备及存储介质
WO2024159940A1 (zh) * 2023-01-30 2024-08-08 合众新能源汽车股份有限公司 云端计算任务的调度系统、方法和计算机可读介质

Also Published As

Publication number Publication date
CN112463312B (zh) 2024-07-23

Similar Documents

Publication Publication Date Title
EP2796996B1 (en) Cloud infrastructure based management system and method for performing maintenance and deployment for application system
CN109617759A (zh) 区块链系统稳定性测试方法、装置、设备及存储介质
US20120066667A1 (en) Simulation environment for distributed programs
CN107534570A (zh) 虚拟化网络功能监控
CN112463312B (zh) 一种定时任务的动态维护系统和方法、介质、计算设备
CN112199192B (zh) 基于服务器部署Kubernetes集群精细化管理配额的方法及系统
CN113778623A (zh) 资源处理方法和装置、电子设备及存储介质
CN108132878A (zh) 一种测试环境的调度方法及系统
CN115145695B (zh) 资源调度方法、装置、计算机设备和存储介质
US20170031743A1 (en) Quorum based distributed anomaly detection and repair
CN108121599A (zh) 一种资源管理方法、装置及系统
CN112346980B (zh) 软件性能测试方法、系统和可读存储介质
CN114760304B (zh) 算力信息的处理方法、处理系统及算力网关
CN113220480B (zh) 分布式的数据任务跨云调度系统及方法
CN109005071B (zh) 一种决策部署方法和调度设备
CN109274533B (zh) 一种基于规则引擎的Web服务故障的定位装置和方法
CN111722917A (zh) 性能测试任务的资源调度方法、装置和设备
CN107092556A (zh) 测试方法、装置及设备
CN110895504A (zh) 调度仿真系统和调度仿真方法
CN108154343B (zh) 一种企业级信息系统的应急处理方法及系统
CN115794659A (zh) 一种cfd软件的分布式并行测试方法、装置、设备及介质
CN110365809A (zh) 分布式服务器地址配置系统及方法
CN115225645A (zh) 一种服务更新方法、装置、系统和存储介质
CN115640066A (zh) 一种安全检测方法、装置、设备及存储介质
CN114201413A (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
CB02 Change of applicant information

Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing

Applicant after: Beijing Shuidi Technology Group Co.,Ltd.

Address before: 100102 201, 2 / F, block C, No.2 lizezhong 2nd Road, Chaoyang District, Beijing

Applicant before: Beijing Health Home Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant