CN113194096A - 一种基于分布式架构的任务调度实时追踪方法及系统 - Google Patents
一种基于分布式架构的任务调度实时追踪方法及系统 Download PDFInfo
- Publication number
- CN113194096A CN113194096A CN202110478292.XA CN202110478292A CN113194096A CN 113194096 A CN113194096 A CN 113194096A CN 202110478292 A CN202110478292 A CN 202110478292A CN 113194096 A CN113194096 A CN 113194096A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- time
- execution
- log
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于分布式架构的任务调度实时追踪方法,其特征在于,包括步骤1:建立用于记录调度进程的数据库表,步骤2:建立用于监控调度进程的远程监控接口并配置在调度管理器中,步骤3:调度任务启动后,监控执行器对调度任务的接收情况,步骤4:根据任务下发的成功与否,上报调度日志数据表和调度详情表中的任务下发数据;步骤5:监控执行器对任务的执行,调用远程监控接口,完成调度状态及调度运行详情的数据上报;步骤6:根据执行结果的不同做不同的处理。达到突破原有依赖文本日志对调度进程的难追踪问题,能以低成本的方式应对集群环境中对各调度任务的全流程跟踪和实时监测,防止补偿不及时导致的服务延迟的效果。
Description
技术领域
本发明属于分布式系统设计领域的任务调度领域,具体涉及一种基于分布式架构的任务调度实时追踪方法及系统。
背景技术
任务调度是指系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力由系统自动去执行任务。软件系统早期一般基于Quartz实现定时任务调度,所述Quartz,是OpenSymphony开源组织在Job scheduling领域的一个开源项目,它可以与J2EE与J2SE应用程序相结合,也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的定时任务程序,然而由于其存在单点故障、任务量有限等问题逐渐被分布式调度所取代。
在软件架构逐步转变为分布式架构的进程中,单体结构被划分为若干服务,服务之间通过网络交互来完成用户的业务处理,比如电商系统为分布式架构,它由订单服务、商品服务、用户服务等组成,这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。分布式调度由分布式调度系统执行,分布式调度系统主要由管理系统、调度器、执行器所组成,三者独立部署,相互之间通过RPC(全称为Remote Procedure Call Protocol,译为远程过程调用协议)或HTTP REST方式通信。所述RPC是一种通过网络从远程计算机程序上请求服务,而不需了解底层网络技术协议,它假定某些传输协议的存在,比如传输控制协议(TCP协议)或用户数据报协议(UDP协议),用于通信程序之间的信息数据携带,RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
在分布式调度系统中,管理系统提供调度规则的配置和下发,调度器负责周期性向执行器下发任务,执行器负责任务执行;调度器和执行器一般是集群部署,可以很好解决Quartz遇到的高可用和扩展问题。然而不论是单机的Quartz还是主流的分布式调度系统,主要解决的是调度和执行问题,但缺失调度过程的实时追踪,业务异常无法及时被感知和处理,用户和企业利益受损。依赖于调度日志的异常查询可以解决数量较少问题的定位,但难以应对集群环境中的追本溯源,需耗费的时间和人工成本极大,因此如何高效定位集群环境中的调度异常源头和原因,极为重要和关键。
CN201810546967需借助消息队列进行调度任务的分配,而消息队列的存在无疑会带来架构搭建的复杂性及增加问题隐患点;对于调度任务的监控也仅仅落在任务执行状态的监控,并没有涵盖调度全过程,这不利于问题追踪及定位。
CN201910411997提供的调分布式任务调度管理方法能降低服务异常的风险,提高服务的稳定性和可靠性,但该方法使用的监控数据仅仅是对任务存活状态的表征,未能在监控过程中明确异常源头和异常位置;CN201910637694通过时间策略解决调度任务的延迟处理问题,但并没有提及调度任务从下发到执行过程中对任务延迟的实时监控及异常报警,诸如此类的方法不能全面且有效地反应出调度过程中各个阶段的任务执行情况,不能实现对调度任务全流程的实时监控;
CN202010939553解决了没有补偿机制环境下剩余待调度任务无法执行的问题,但需要通过再次扫描获取未完成执行的调度任务,无法保证调度任务异常发生时及时启动调度补偿,由此导致的调度延迟会带来服务提供异常。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种基于分布式架构的任务调度实时追踪方法及系统,监控每一个调度任务在任务下发、任务执行、任务补偿调度这3种调度状态时的运行进程;在任务调度过程中,监控每一个调度任务在任务下发、任务执行、任务补偿调度这3种调度状态时的运行进程;通过远程过程调用协议和数据库表的结合应用,管理系统外暴露监控服务,让调度器、执行器以远程过程调用协议RPC的方式上报任务状态数据,管理系统接收到数据后进行自动化处理和存储,自动化处理不但可以实时报警也可以补偿调度,极大提升问题处理及时性;存储后即能实时呈现也能进行历史分析,得益于监控数据设计的丰富性,可以根据其异常堆栈信息快速定位问题,大幅降低人力成本。
为解决上述技术问题,本发明提供一种基于分布式架构的任务调度实时追踪方法,在分布式调度系统中对任务调度进行全流程的实时追踪,具体步骤包括:
步骤1:建立用于记录调度进程的数据库表,所述数据库表包括调度日志表和调度详情表;所述数据库表根据调度状态的变化更新;所述调度日志表记录每个调度任务所处的调度状态,以调度日志ID定位每一个调度任务,所述调度任务以任务名命名,所述调度状态包含任务下发、任务执行中、任务成功、任务失败,记录每个调度状态相应的操作时间;所述调度日志ID在一个新任务被调度发起时自动生成,用于标识每个任务的调度过程;所述调度详情表通过调度日志ID与调度日志表关联,记录一个调度任务在不同调度状态中的运行详情,记录每一次调度状态更新所匹配的运行详情的;所述运行详情包含详情ID、任务运行方、、任务类型、任务运行时间、任务运行结果、任务异常原因;所述详情ID在新增运行详情的记录时自动生成;所述任务类型包含调度和执行,任务类型根据任务运行方自动生成;所述任务运行方包含调度器和由不止一个执行器组成的执行器集群;
步骤2:建立用于监控调度进程的远程监控接口并配置在调度管理器中,所述远程监控接口之间是并行关系,所述远程监控接口包括任务下发成功监控接口、任务下发失败监控接口、任务执行监控接口、执行成功监控接口及执行失败监控接口;任一远程监控接口的调用,传入调度参数,触发调度日志表和调度详情表中数据记录的变更;当监控到调度任务进入指定调度运行进程时,由当前任务运行方调用相应的远程监控接口;所述调度运行进程包括:任务下发成功、任务下发失败、任务执行开始、任务执行成功、任务执行失败;
步骤3:调度任务启动后,待监控到调度器下发任务至执行器集群中任一执行器,获取调度任务的任务名和任务下发时间,所述任务下发时间为任务下发的当前时间点,精确至秒;由调度器自动生成该调度任务的调度日志ID,监控执行器对调度任务的接收情况,若监控到执行器集群中任一执行器接收到任务时,视为任务下发成功;若监控到执行器集群中任一执行器未接收到任务时,视为任务下发异常;
步骤4:根据任务下发的成功与否,调用相应调度运行进程的远程监控接口,上报调度日志数据表和调度详情表中的任务下发数据,具体为:
步骤401:若任务下发成功,调用任务下发成功监控接口,触发在调度日志数据表中新增数据记录,数据记录中的调度状态记为任务下发,数据记录中的调度状态时间为任务下发时间;同时触发在调度详情表中插入数据记录,数据记录中的任务运行方记为调度器IP地址、任务运行时间记为任务下发时间、任务异常原因记为空值;继续执行步骤6;
步骤402:若任务下发异常,调用任务下发失败监控接口,触发在调度日志数据表中新增数据记录,数据记录中的调度状态记为任务失败,数据记录中的调度状态时间为任务下发时间;同时触发在调度详情表中插入数据记录,数据记录中的任务运行方记为调度器IP地址、任务运行时间记为任务下发时间、任务异常记为引起异常的线程堆栈信息;
步骤5:执行器接收调度任务时,获取由调度器下发的任务名及调度日志ID;监控执行器对任务的执行,在任务开始执行和任务结束执行这两个时间点,通过传入包含调度日志ID、执行器IP、执行开始时间的调度参数,调用远程监控接口,完成调度状态及调度运行详情的数据上报;具体为:
监控到任务开始执行时获取执行器IP和任务执行的当前时间,由当前执行任务的执行器调用远程的任务开始执行监控接口,通过调度日志ID,匹配调度日志表中调度日志ID所对应的数据记录,触发该数据记录中的任务状态值变更为执行中,更新数据记录中的执行开始时间;进一步地,任务状态值的变更,触发调度详情表中数据记录新增,数据记录中的任务运行方记为调度器IP地址、任务类型为执行,任务运行时间记为任务开始时间,任务异常原因记为空值;监控到任务执行结束时,获取任务执行结果,执行步骤6;
步骤6:根据执行结果的不同做不同的处理,具体为:
若任务执行结果为成功,传入调度参数,所述调度参数包含任务名、调度日志ID、执行结果、执行器IP地址和任务结束时间,调用远程的执行成功监控接口,通过调度日志ID在调度日志表中定位该任务所在的数据记录,触发该数据记录中的任务状态值变更为任务成功,数据记录中的执行结束时间记为任务结束时间;任务状态值的变更同时触发调度详情表中新增一条数据记录,数据记录中任务运行方记为执行器IP地址、任务运行时间记为任务结束时间、任务类型为执行,任务异常记为空值;
若任务执行结果为失败,传入调度参数,所述调度参数包含任务名、调度日志ID、执行结果、执行器IP地址和任务结束时间的调度参数,调用远程的执行失败监控接口,通过调度日志ID在调度日志表中定位该任务所在的数据记录,触发该数据记录中的任务状态值变更为任务失败,数据记录中的执行结束时间记为任务结束时间;任务状态值的变更同时触发调度详情表中新增一条数据记录,数据记录中任务运行方记为执行器IP地址、任务运行时间记为任务结束时间、任务类型为任务执行,任务异常记为引起失败的线程堆栈信息。
在所述步骤1中,还需建立调度补偿规则表,用于提前存储调度异常时需再次重启任务调度的规则,所述调度补偿规则表的表字段包含规则ID、任务名、任务运行方、任务类型、剩余补偿次数、补偿间隔;所述规则ID由数据库在规则输入时自动生成;所述剩余补偿次数标识重启任务调度的次数,每一次重启调度执行时,剩余补偿次数减1,直至补偿次数为0,则中止重启调度;所述补偿间隔用于规定重启时距离异常发生时的时间间隔。
在所述步骤2中,所述调度参数包含调度日志ID、任务名、任务运行方IP地址、任务类型、操作时间、操作结果、错误详情,其中,日志ID、任务名、节点地址、节点类型、操作时间、操作结果的参数值禁止为空;所述步骤2中的监控服务接口被定义为RPC远程调用接口。
在所述步骤3~步骤6中,调度任务在任一任务状态的任一调度运行进程中出现异常,导致调度任务失败,将触发异常告警,发送调度任务失败的邮件和短信告知运维人员;同时根据任务名、任务运行方及任务类型,查询任务补偿调度规则;针对满足调度补偿规则的任务,在指定的时间间隔后将被再次被下发至执行器,根据任务下发结果,完成在调度日志表和调度详情表中的数据更新。
针对在所述步骤3~步骤6中因失败而触发异常告警的调度任务,当所述调度任务再次被下发至执行器时,不在调度日志表新增一条数据记录,在调度日志表定位该任务的异常数据记录,根据任务下发时间和任务下发结果,完成在调度日志表中的操作时间及调度状态的数据更新,调度状态的更新同步带来调度详情表的数据记录新增,同步骤4。
在所述步骤3~步骤6中,通过从数据库中调取调度日志表和调度详情表,实现显示端的可视化呈现,具体为:未完成任务的可视化通过实时查询调度日志表字段的任务状态的值为任务下发和任务执行中的数据记录,并返回数据记录至显示端;任务实时追踪可视化通过日志ID获取调度日志详情表对应的数据记录,并按时间先后顺序串联数据记录发送至显示端。
一种基于分布式架构的任务调度实时追踪系统,其特征在于:系统结构为分布式架构,包含由多个管理器组成的管理器集群,及与所述管理器集群相连的由多个调度器组成的调度器集群和由多个执行器组成的执行器集群;所述调度器集群、执行器集群及管理器集群以独立服务单独部署,所述调度器集群中包含不止一个任务调度器,所述调度器用于将任务下发至执行器;所述执行器集群中包含不止一个执行器,所述执行器用于接收任务并完成执行;所述管理器集群中包含不止一个管理器,所述管理器用于监控任务下发和执行过程中的调度运行情况,并完成调度运行进程的数据记录;所述管理器包含与监控服务模块相连的状态分析模块,所述状态分析模块分别连接告警模块、调度补偿模块和数据模块,所述调度补偿模块与所述数据模块相连,所述数据模块还连接web展示模块;
所述监控服务模块用于监控调度器的任务下发及执行器的任务接收、执行情况,在所述监控服务模块中配置5个RPC远程监控接口,分别为任务下发成功监控接口、任务下发失败监控接口、任务执行监控接口、执行成功监控接口及执行失败监控接口;
所述状态分析模块用于接收监控服务模块的监控结果,判定当前的调度运行进程是否正常运行;所述告警模块用于在调度运行进程异常运行时,触发邮件告警和短信告警;所述调度补偿模块用于在调度运行进程异常时,控制任务在指定时间后重新调度;所述数据模块用于根据调度运行进程的状态,控制任务调度日志数据和调度详情数据的新增及更新;所述Web展示模块用于实时获取数据库表的任务调度数据进行调度运行进程的可视化。
本发明所达到的有益效果:
(1)本发明提取了调度操作时间、调度状态、任务运行方、任务运行结果、任务异常原因的关键元素,以数据库表的形式记录调度状态、调度运行进程及调度补偿,并通过与监控调度进程的远程监控接口建立联动关系,对调度异常位置及异常原因实时记录,不仅突破原有依赖文本日志对调度进程的难追踪问题,也能以低成本的方式应对集群环境中对各调度任务的全流程跟踪和实时监测;
(2)本发明在调度任务的全流程中建立调度补偿规则,保证调度任务在任何一个进程中遭遇异常或失败时,能实时根据调度任务匹配对应的调度规则进行调度任务重启,达到调度补偿的及时性,防止补偿不及时导致的服务延迟。
附图说明
图1为本发明实施例中一种基于分布式架构的任务调度实时追踪流程示意图;
图2为本发明实施例中调度正常的实时追踪可视化效果示意图;
图3为本发明实施例中调度异常的实时追踪可视化效果示意图;
图4为本发明异常调度重启的流程追踪流程示意图;
图5为本发明实施例中一种基于分布式架构的任务调度实时追踪系统架构示意图。
具体实施方式
下面结合附图和示例性实施例对本发明作进一步的说明:
图1为本发明实施例中一种基于分布式架构的任务调度实时追踪流程示意图,具体包括:
步骤101:建立用于记录调度进程的调度日志表和调度详情表,以及用于记录异常重启规则的调度补偿规则表;调度状态的变化将带来调度日志表和调度详情表的更新;所述调度日志表记录每个调度任务所处的调度状态,以调度日志ID定位每一个调度任务,所述调度状态包含任务下发、任务执行中、任务成功及任务失败,每个调度状态均记录相应的操作时间;所述调度日志ID在一个新任务被调度发起时自动生成;所述调度详情表通过调度日志ID与调度日志表关联,记录一个调度任务在不同调度状态中的运行详情,每一次调度状态的更新均有匹配的调度运行详情记录;所述运行详情包含详情ID、任务运行方、任务类型、任务运行时间、任务运行结果、任务异常原因;所述详情ID在新增运行详情记录时自动生成;所述任务类型包含调度和执行,任务类型根据任务运行方自动生成;所述调度运行方包含调度器和执行器;
所述调度日志表的数据记录具体包含:调度日志ID、任务名、调度操作时间、任务执行开始时间、任务执行结束时间、调度状态,其中日志ID为主键;所述调度详情表的表字段具体包含:详情ID、调度日志ID、任务运行方及任务运行方IP地址、调度操作时间、任务类型、任务运行结果、错误详情;
所述调度补偿规则表提前存储调度异常时需再次重启任务调度的规则,表字段包含规则ID、任务名、任务运行方、任务类型、剩余补偿次数、补偿间隔;其中,所述规则ID由数据库在规则输入时自动生成;所述剩余补偿次数标识重启任务调度的次数,每一次重启调度执行时,剩余补偿次数减“1”,直至为0中止重启;所述补偿间隔用于规定重启时距离异常发生时的时间间隔;
步骤102:建立用于监控调度进程的远程监控接口,配置在管理器的监控服务模块中,包括任务下发成功监控接口、任务下发失败监控接口、任务执行监控接口、执行成功监控接口及执行失败监控接口,并配置在调度管理器中;每一个接口的调用,将触发调度日志表和调度详情表中数据记录的变更;当监控到任务调度进入指定调度运行进程时,由当调度运行方调用相应的远程监控接口;所述调度运行进程包任务下发成功、任务下发失败、任务执行开始、任务执行成功、任务执行失败;
任一远程监控接口的调用时,需传入调度参数的包含调度日志ID、任务名、任务运行方IP地址、任务类型、调度操作时间、调度操作结果、错误详情,其中日志ID、任务名、任务运行方IP地址、调度操作时间、调度操作结果的参数值禁止为空;
步骤103:监控调度器的任务下发情况:调度任务启动后,待监控到调度器下发任务至执行器集群中任一执行器,获取任务名和任务下发时间,所述任务下发时间为任务下发的当前时间点,精确至秒;由调度器自动生成该调度任务的调度日志ID,所述调度日志ID用于标识每个任务的调度过程;同时监控执行器对任务的接收情况,若监控到执行器集群中任一执行器接收到任务时,视为任务下发成功;若监控到执行器集群中任一执行器未接收到任务时,视为任务下发异常;
步骤104:根据任务下发的成功与否,调用相应调度运行进程的远程监控接口,执行在调度日志数据表和调度详情表的任务下发数据上报,具体为:
步骤104-1:若任务下发成功,调用任务下发成功监控接口,触发在调度日志数据表中新增数据记录,数据记录中的调度状态记为“任务下发”,数据记录中的调度状态时间为“任务下发时间”;同时触发在调度详情表中插入数据记录,数据记录中的任务运行方记为“调度器IP地址”、任务运行时间记为“任务下发时间”、任务异常原因记为空值;继续执行步骤106;
步骤104-2:若任务下发异常,调用任务下发失败监控接口,触发在调度日志数据表中新增数据记录,数据记录中的调度状态记为“任务失败”,数据记录中的调度状态时间为“任务下发时间”;同时触发在调度详情表中插入数据记录,数据记录中的任务运行方记为“调度器IP地址”、任务运行时间记为“任务下发时间”、任务异常记为引起异常的线程堆栈信息;
步骤105:监控任务执行开始和执行结束的任务调度运行进程,完成调度状态及调度运行详情的数据上报,具体为:执行器接收调度任务时,获取由调度器下发的任务名及调度日志ID;监控执行器对任务的执行,在任务开始执行和任务结束执行这两个时间点,通过传入包含调度日志ID、执行器IP、执行开始时间的调度参数,调用远程监控接口,完成调度状态及调度运行详情的数据上报;具体为:
监控到任务开始执行时获取执行器IP和任务执行的当前时间,由当前执行任务的执行器调用远程的任务开始执行监控接口,通过调度日志ID,匹配调度日志表中调度日志ID所对应的数据记录,触发该数据记录中的任务状态值变更为“执行中”,更新数据记录中的执行开始时间;进一步地,任务状态值的变更,触发调度详情表中数据记录新增。数据记录中的任务运行方记为“调度器IP地址”、任务类型为“任务执行”,任务运行时间记为“任务开始时间”、,任务异常原因记为空值;监控到任务执行结束时,获取任务执行结果,执行步骤107;
步骤106:根据执行结果完成调度状态及调度运行详情的数据上报,失败的执行结果将触发调度补偿,具体为:
若任务执行结果为成功,传入包含任务名、调度日志ID、执行结果、执行器IP和任务结束时间的调度参数,调用远程的执行成功监控接口,通过调度日志ID在调度日志表中定位该任务所在的数据记录,触发该数据记录中的任务状态值变更为“任务成功”,数据记录中的执行结束时间记为任务结束时间;任务状态值的变更同时触发调度详情表中新增一条数据记录,数据记录中任务运行方记为“执行器IP地址”、任务运行时间记为“任务结束时间”、任务类型为“任务执行”,任务异常记为空值;
若任务执行结果为失败,传入包含任务名、调度日志ID、执行结果、执行器IP和任务结束时间的调度参数,调用远程的执行成功监控接口,通过调度日志ID在调度日志表中定位该任务所在的数据记录,触发该数据记录中的任务状态值变更为“任务失败”,数据记录中的执行结束时间记为任务结束时间;任务状态值的变更同时触发调度详情表中新增一条数据记录,数据记录中任务运行方记为“执行器IP地址”、任务运行时间记为“任务结束时间”、任务类型为“任务执行”,任务异常记为引起失败的线程堆栈信息;
步骤107:显示端能实时从数据库中调取调度日志表和调度详情表,执行可视化页面呈现,具体为:未完成任务的可视化通过实时查询调度日志表字段“任务状态”值为“任务下发”和“任务执行中”的数据记录,并返回数据记录至显示端;任务实时追踪可视化通过日志ID获取调度日志详情表对应的数据记录,并按时间先后顺序串联数据记录发送至显示端。
如图2为本发明实施例中调度正常的实时追踪可视化效果图,如图3为本发明实施例中调度异常的实时追踪可视化效果图;在可视化界面提供了调度、执行及完成的进程指示标签,以及与进程对应的操作时间、操作节点、报错类型、报错信息和其他信息等参数标签,当调度任务的进程是正常时,“完成”标签被标记为成功,当调度任务的进程是异常时,“完成”标签被标记为不成功。通过调度进程的可视化,实现对调度的实时追踪,方便对问题的快速定位。
在所述步骤103-步骤106中,调度任务在任一任务状态的任一调度运行进程中出现异常,导致任务调度失败,触发异常告警,发送“调度任务失败”的邮件和短信告知运维人员;同时根据调度补偿规则表中的调度重启规则,在指定时间之后重新由调度器发起调度。
图4为本发明异常调度重启的流程追踪流程示意图,在异常调度重启时,不在调度日志表新增一条数据记录,在调度日志表定位该任务的异常数据记录,根据任务下发时间和任务下发结果,完成在调度日志表中的操作时间及调度状态的数据更新;新增数据记录是指在调度日志表中增加一条新的数据记录;数据记录新增将会带来数据表大小的增加,进而导致数据存储的增加;更新数据只是在某一条指定的数据记录中修改指定的数据字段的值;数据表的大小不会因此发生变化,调度日志表仅用于查看调度任务当前所处的任务状态,以往的任务状态不需要在调度日志表中体现,更新数据记录中的“操作时间”及“任务状态”数据字段值,避免了调度日志表中存在大量冗余数据,减少冗余对数据查询及获取性能的影响;异常调度重启的具体流程包括:
步骤401:获取调度异常的任务名、任务运行方及任务类型,在调度补偿规则表寻找与其匹配的数据记录,进一步获取数据记录中“剩余补偿次数”和“补偿间隔”;
步骤402:根据剩余补偿次数,决定是否重启调度:若剩余补偿次数不为0,剩余补偿次数减“1”,按照补偿间隔限定的时间,在距离异常发生的指定时间后,调度器重新下发任务至执行器集群中任一执行器,执行步骤403;若剩余补偿次数为0,立即中止任务调度;
步骤403:监控任务调度重启后的任务下发进程:定位本次重启任务在调度日志表中的异常数据记录,按照任务下发时间和任务下发结果,只更新数据记录中的“调度操作时间”和“调度状态”;如若任务下发成功,“调度状态”由任务失败更新为任务下发;如若任务下发失败,调度状态保持不变,按照调度规则继续判定是否重启调度;
步骤404:调度日志表的更新触发调度详情表中数据记录新增,具体按照步骤104中调度详情表的数据记录新增步骤执行;
步骤405:按照步骤105-步骤107完成任务接收、任务执行及可视化。
图5为本发明实施例中一种基于分布式架构的任务调度实时追踪系统架构示意图,以分布式架构搭建系统,包含由多个调度器组成的调度器集群501、由多个执行器组成的执行器集群502、由多个管理器组成的管理器集群503;调度器集群501、执行器集群502及管理器集群503以独立服务单独部署,调度器集群中任一调度器用于将任务下发至执行器;执行器集群中任一执行器用于接收任务并完成执行;管理器集群任一管理器用于监控任务下发和执行过程中的调度运行情况,并完成调度运行进程的数据记录;所述管理器集群中任一管理器包含监控服务模块503-1、状态分析模块503-2、告警模块503-3、调度补偿模块503-4、数据模块503-5及web展示模块503-6;
所述监控服务模块503-1,用于监控调度器的任务下发及执行器的任务接收、执行情况,在所述监控服务模块中配置5个RPC远程监控接口,包含任务下发成功监控接口、任务下发失败监控接口、任务执行监控接口、执行成功监控接口及执行失败监控接口;
所述状态分析模块503-2,用于接收监控服务模块的监控结果,判定当前的调度运行进程是异常运行还是正常运行;所述数据模块503-5用于根据调度运行进程的正常与否,控制任务调度日志数据和调度详情数据的新增及更新;所述告警模块503-3,用于在异常运行时,触发邮件告警和短信告警;所述Web展示模块503-6,用于实时获取数据库表的任务调度数据进行调度运行进程的可视化;所述调度补偿模块503-4,用于在调度运行异常时,控制任务在指定时间后重新调度。
本发明所达到的有益效果:
(1)本发明提取了调度操作时间、调度状态、任务运行方、任务运行结果、任务异常原因的关键元素,以数据库表的形式记录调度状态、调度运行进程及调度补偿,并通过与监控调度进程的远程监控接口建立联动关系,对调度异常位置及异常原因实时记录,不仅突破原有依赖文本日志对调度进程的难追踪问题,也能以低成本的方式应对集群环境中对各调度任务的全流程跟踪和实时监测;
(2)本发明在调度任务的全流程中建立调度补偿规则,保证调度任务在任何一个进程中遭遇异常或失败时,能实时根据调度任务匹配对应的调度规则进行调度任务重启,达到调度补偿的及时性,防止补偿不及时导致的服务延迟。
以上实施例不以任何方式限定本发明,凡是对以上实施例以等效变换方式做出的其它改进与应用,都属于本发明的保护范围。
Claims (7)
1.一种基于分布式架构的任务调度实时追踪方法,其特征在于,在分布式调度系统中对任务调度进行全流程的实时追踪,具体步骤包括:
步骤1:建立用于记录调度进程的数据库表,所述数据库表包括调度日志表和调度详情表;所述数据库表根据调度状态的变化更新;所述调度日志表记录每个调度任务所处的调度状态,以调度日志ID定位每一个调度任务,所述调度任务以任务名命名,所述调度状态包含任务下发、任务执行中、任务成功、任务失败,记录每个调度状态相应的操作时间;所述调度日志ID在一个新任务被调度发起时自动生成,用于标识每个任务的调度过程;所述调度详情表通过调度日志ID与调度日志表关联,记录一个调度任务在不同调度状态中的运行详情,记录每一次调度状态更新所匹配的运行详情的;所述运行详情包含详情ID、任务运行方、、任务类型、任务运行时间、任务运行结果、任务异常原因;所述详情ID在新增运行详情的记录时自动生成;所述任务类型包含调度和执行,任务类型根据任务运行方自动生成;所述任务运行方包含调度器和由不止一个执行器组成的执行器集群;
步骤2:建立用于监控调度进程的远程监控接口并配置在调度管理器中,所述远程监控接口之间是并行关系,所述远程监控接口包括任务下发成功监控接口、任务下发失败监控接口、任务执行监控接口、执行成功监控接口及执行失败监控接口;任一远程监控接口的调用,传入调度参数,触发调度日志表和调度详情表中数据记录的变更;当监控到调度任务进入指定调度运行进程时,由当前任务运行方调用相应的远程监控接口;所述调度运行进程包括:任务下发成功、任务下发失败、任务执行开始、任务执行成功、任务执行失败;
步骤3:调度任务启动后,待监控到调度器下发任务至执行器集群中任一执行器,获取调度任务的任务名和任务下发时间,所述任务下发时间为任务下发的当前时间点,精确至秒;由调度器自动生成该调度任务的调度日志ID,监控执行器对调度任务的接收情况,若监控到执行器集群中任一执行器接收到任务时,视为任务下发成功;若监控到执行器集群中任一执行器未接收到任务时,视为任务下发异常;
步骤4:根据任务下发的成功与否,调用相应调度运行进程的远程监控接口,上报调度日志数据表和调度详情表中的任务下发数据,具体为:
步骤401:若任务下发成功,调用任务下发成功监控接口,触发在调度日志数据表中新增数据记录,数据记录中的调度状态记为任务下发,数据记录中的调度状态时间为任务下发时间;同时触发在调度详情表中插入数据记录,数据记录中的任务运行方记为调度器IP地址、任务运行时间记为任务下发时间、任务异常原因记为空值;继续执行步骤6;
步骤402:若任务下发异常,调用任务下发失败监控接口,触发在调度日志数据表中新增数据记录,数据记录中的调度状态记为任务失败,数据记录中的调度状态时间为任务下发时间;同时触发在调度详情表中插入数据记录,数据记录中的任务运行方记为调度器IP地址、任务运行时间记为任务下发时间、任务异常记为引起异常的线程堆栈信息;
步骤5:执行器接收调度任务时,获取由调度器下发的任务名及调度日志ID;监控执行器对任务的执行,在任务开始执行和任务结束执行这两个时间点,通过传入包含调度日志ID、执行器IP、执行开始时间的调度参数,调用远程监控接口,完成调度状态及调度运行详情的数据上报;具体为:
监控到任务开始执行时获取执行器IP和任务执行的当前时间,由当前执行任务的执行器调用远程的任务开始执行监控接口,通过调度日志ID,匹配调度日志表中调度日志ID所对应的数据记录,触发该数据记录中的任务状态值变更为执行中,更新数据记录中的执行开始时间;进一步地,任务状态值的变更,触发调度详情表中数据记录新增,数据记录中的任务运行方记为调度器IP地址、任务类型为执行,任务运行时间记为任务开始时间,任务异常原因记为空值;监控到任务执行结束时,获取任务执行结果,执行步骤6;
步骤6:根据执行结果的不同做不同的处理,具体为:
若任务执行结果为成功,传入调度参数,所述调度参数包含任务名、调度日志ID、执行结果、执行器IP地址和任务结束时间,调用远程的执行成功监控接口,通过调度日志ID在调度日志表中定位该任务所在的数据记录,触发该数据记录中的任务状态值变更为任务成功,数据记录中的执行结束时间记为任务结束时间;任务状态值的变更同时触发调度详情表中新增一条数据记录,数据记录中任务运行方记为执行器IP地址、任务运行时间记为任务结束时间、任务类型为执行,任务异常记为空值;
若任务执行结果为失败,传入调度参数,所述调度参数包含任务名、调度日志ID、执行结果、执行器IP地址和任务结束时间的调度参数,调用远程的执行失败监控接口,通过调度日志ID在调度日志表中定位该任务所在的数据记录,触发该数据记录中的任务状态值变更为任务失败,数据记录中的执行结束时间记为任务结束时间;任务状态值的变更同时触发调度详情表中新增一条数据记录,数据记录中任务运行方记为执行器IP地址、任务运行时间记为任务结束时间、任务类型为任务执行,任务异常记为引起失败的线程堆栈信息。
2.如权利要求1所述的一种基于分布式架构的任务调度实时追踪方法,其特征在于:在所述步骤1中,还需建立调度补偿规则表,用于提前存储调度异常时需再次重启任务调度的规则,所述调度补偿规则表的表字段包含规则ID、任务名、任务运行方、任务类型、剩余补偿次数、补偿间隔;所述规则ID由数据库在规则输入时自动生成;所述剩余补偿次数标识重启任务调度的次数,每一次重启调度执行时,剩余补偿次数减1,直至补偿次数为0,则中止重启调度;所述补偿间隔用于规定重启时距离异常发生时的时间间隔。
3.如权利要求2所述的一种基于分布式架构的任务调度实时追踪方法,其特征在于:在所述步骤2中,所述调度参数包含调度日志ID、任务名、任务运行方IP地址、任务类型、操作时间、操作结果、错误详情,其中,日志ID、任务名、节点地址、节点类型、操作时间、操作结果的参数值禁止为空;所述步骤2中的监控服务接口被定义为RPC远程调用接口。
4.如权利要求3所述的一种基于分布式架构的任务调度实时追踪方法,其特征在于:在所述步骤3~步骤6中,调度任务在任一任务状态的任一调度运行进程中出现异常,导致调度任务失败,将触发异常告警,发送调度任务失败的邮件和短信告知运维人员;同时根据任务名、任务运行方及任务类型,查询任务补偿调度规则;针对满足调度补偿规则的任务,在指定的时间间隔后将被再次被下发至执行器,根据任务下发结果,完成在调度日志表和调度详情表中的数据更新。
5.如权利要求4所述的一种基于分布式架构的任务调度实时追踪方法,其特征在于:针对在所述步骤3~步骤6中因失败而触发异常告警的调度任务,当所述调度任务再次被下发至执行器时,不在调度日志表新增一条数据记录,在调度日志表定位该任务的异常数据记录,根据任务下发时间和任务下发结果,完成在调度日志表中的操作时间及调度状态的数据更新,调度状态的更新同步带来调度详情表的数据记录新增,同步骤4。
6.如权利要求5所述的一种基于分布式架构的任务调度实时追踪方法,其特征在于:在所述步骤3~步骤6中,通过从数据库中调取调度日志表和调度详情表,实现显示端的可视化呈现,具体为:未完成任务的可视化通过实时查询调度日志表字段的任务状态的值为任务下发和任务执行中的数据记录,并返回数据记录至显示端;任务实时追踪可视化通过日志ID获取调度日志详情表对应的数据记录,并按时间先后顺序串联数据记录发送至显示端。
7.一种如权利要求1-6所述方法之一运行的基于分布式架构的任务调度实时追踪系统,其特征在于:系统结构为分布式架构,包含由多个管理器组成的管理器集群,及与所述管理器集群相连的由多个调度器组成的调度器集群和由多个执行器组成的执行器集群;所述调度器集群、执行器集群及管理器集群以独立服务单独部署,所述调度器集群中包含不止一个任务调度器,所述调度器用于将任务下发至执行器;所述执行器集群中包含不止一个执行器,所述执行器用于接收任务并完成执行;所述管理器集群中包含不止一个管理器,所述管理器用于监控任务下发和执行过程中的调度运行情况,并完成调度运行进程的数据记录;所述管理器包含与监控服务模块相连的状态分析模块,所述状态分析模块分别连接告警模块、调度补偿模块和数据模块,所述调度补偿模块与所述数据模块相连,所述数据模块还连接web展示模块;
所述监控服务模块用于监控调度器的任务下发及执行器的任务接收、执行情况,在所述监控服务模块中配置5个RPC远程监控接口,分别为任务下发成功监控接口、任务下发失败监控接口、任务执行监控接口、执行成功监控接口及执行失败监控接口;
所述状态分析模块用于接收监控服务模块的监控结果,判定当前的调度运行进程是否正常运行;所述告警模块用于在调度运行进程异常运行时,触发邮件告警和短信告警;所述调度补偿模块用于在调度运行进程异常时,控制任务在指定时间后重新调度;所述数据模块用于根据调度运行进程的状态,控制任务调度日志数据和调度详情数据的新增及更新;所述Web展示模块用于实时获取数据库表的任务调度数据进行调度运行进程的可视化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110478292.XA CN113194096B (zh) | 2021-04-30 | 2021-04-30 | 一种基于分布式架构的任务调度实时追踪方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110478292.XA CN113194096B (zh) | 2021-04-30 | 2021-04-30 | 一种基于分布式架构的任务调度实时追踪方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113194096A true CN113194096A (zh) | 2021-07-30 |
CN113194096B CN113194096B (zh) | 2022-03-08 |
Family
ID=76983203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110478292.XA Active CN113194096B (zh) | 2021-04-30 | 2021-04-30 | 一种基于分布式架构的任务调度实时追踪方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113194096B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134243A (zh) * | 2022-09-02 | 2022-09-30 | 北京科技大学 | 一种工业控制任务分布式部署方法及系统 |
CN117193990A (zh) * | 2023-11-08 | 2023-12-08 | 建信金融科技有限责任公司 | http接口的调度管理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150127979A1 (en) * | 2013-11-07 | 2015-05-07 | Salesforce.Com, Inc. | Triaging computing systems |
CN108762931A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于分布式调度系统的任务调度方法、服务器及存储介质 |
CN111124806A (zh) * | 2019-11-25 | 2020-05-08 | 山东鲁能软件技术有限公司 | 一种基于分布式调度任务的设备状态实时监测方法及系统 |
CN111324426A (zh) * | 2018-12-17 | 2020-06-23 | 中国移动通信集团山东有限公司 | Oracle数据库任务作业管理调度系统及方法 |
CN111625414A (zh) * | 2020-04-29 | 2020-09-04 | 江苏瑞中数据股份有限公司 | 一种数据转换整合软件的自动调度监控系统实现方法 |
-
2021
- 2021-04-30 CN CN202110478292.XA patent/CN113194096B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150127979A1 (en) * | 2013-11-07 | 2015-05-07 | Salesforce.Com, Inc. | Triaging computing systems |
CN108762931A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于分布式调度系统的任务调度方法、服务器及存储介质 |
CN111324426A (zh) * | 2018-12-17 | 2020-06-23 | 中国移动通信集团山东有限公司 | Oracle数据库任务作业管理调度系统及方法 |
CN111124806A (zh) * | 2019-11-25 | 2020-05-08 | 山东鲁能软件技术有限公司 | 一种基于分布式调度任务的设备状态实时监测方法及系统 |
CN111625414A (zh) * | 2020-04-29 | 2020-09-04 | 江苏瑞中数据股份有限公司 | 一种数据转换整合软件的自动调度监控系统实现方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134243A (zh) * | 2022-09-02 | 2022-09-30 | 北京科技大学 | 一种工业控制任务分布式部署方法及系统 |
CN115134243B (zh) * | 2022-09-02 | 2022-12-06 | 北京科技大学 | 一种工业控制任务分布式部署方法及系统 |
CN117193990A (zh) * | 2023-11-08 | 2023-12-08 | 建信金融科技有限责任公司 | http接口的调度管理方法、装置、设备及存储介质 |
CN117193990B (zh) * | 2023-11-08 | 2024-02-23 | 建信金融科技有限责任公司 | http接口的调度管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113194096B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8447859B2 (en) | Adaptive business resiliency computer system for information technology environments | |
US7779298B2 (en) | Distributed job manager recovery | |
EP3543866B1 (en) | Resource-efficient record processing in unified automation platforms for robotic process automation | |
CN106844198B (zh) | 一种分布式调度自动化测试平台及方法 | |
CN113194096B (zh) | 一种基于分布式架构的任务调度实时追踪方法及系统 | |
US8682705B2 (en) | Information technology management based on computer dynamically adjusted discrete phases of event correlation | |
CN102546460B (zh) | 用于在集群处理网络中进行调试的系统和方法 | |
US8375244B2 (en) | Managing processing of a computing environment during failures of the environment | |
US8826077B2 (en) | Defining a computer recovery process that matches the scope of outage including determining a root cause and performing escalated recovery operations | |
US8301935B2 (en) | Distributed batch runner | |
US20130117226A1 (en) | Method and A System for Synchronizing Data | |
CN106406993A (zh) | 一种定时任务管理方法和系统 | |
US8171474B2 (en) | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface | |
US20130263104A1 (en) | End-to-end patch automation and integration | |
US20200073729A1 (en) | Adapter extension for inbound messages from robotic automation platforms to unified automation platform | |
CN113569987A (zh) | 模型训练方法和装置 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN112199355B (zh) | 数据迁移方法、装置、电子设备及存储介质 | |
CN110798339A (zh) | 一种基于分布式任务调度框架的任务容灾方法 | |
US8402125B2 (en) | Method of managing operations for administration, maintenance and operational upkeep, management entity and corresponding computer program product | |
CN112000451A (zh) | 批量作业调度系统、方法、设备及存储介质 | |
CN112350862A (zh) | 一种监控报警及故障自愈系统 | |
US20080178182A1 (en) | Work state returning apparatus, work state returning method, and computer product | |
JP2007141007A (ja) | システム運用監視での障害時のサポートシステム化 |
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 |