CN118093303A - 任务监控方法、装置和计算设备 - Google Patents

任务监控方法、装置和计算设备 Download PDF

Info

Publication number
CN118093303A
CN118093303A CN202311406786.2A CN202311406786A CN118093303A CN 118093303 A CN118093303 A CN 118093303A CN 202311406786 A CN202311406786 A CN 202311406786A CN 118093303 A CN118093303 A CN 118093303A
Authority
CN
China
Prior art keywords
task
time
baseline
period
target
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.)
Pending
Application number
CN202311406786.2A
Other languages
English (en)
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202311406786.2A priority Critical patent/CN118093303A/zh
Publication of CN118093303A publication Critical patent/CN118093303A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开的实施方式提供了一种任务监控方法、装置和计算设备。该方法包括:确定第一集合;第一集合由目标时段内需要执行的任务组成;目标时段为当前时刻所属时段的后一时段;若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;基线任务为第一集合中设置有目标基线的任务;第一关键路径中包括至少一个第一关键任务;获取第一基线的快照信息;快照信息用于记录历史任务和关联任务;关联任务为执行历史任务所依赖的任务;根据第一关键路径和快照信息,确定异常任务。通过上述比对关键路径和历史时段的快照信息,确定异常任务的方式,以便用户快速定位异常任务,降低后续任务延期完成的概率。

Description

任务监控方法、装置和计算设备
技术领域
本公开的实施方式涉及数据处理领域,更具体地,本公开的实施方式涉及一种任务监控方法、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,在数据处理领域中,通常需要对任务的完成时间进行监控,以便确保任务可以按时完成。相关技术中,当预估任务无法按时完成时,通常会向用户发送任务无法按时的通知消息,在用户接收到上述通知消息之后,仍需要用户主动排查导致任务超期的异常任务。
因此,如何及时确定异常任务,是一个亟需解决的问题。
发明内容
本公开提供一种任务监控方法、装置和计算设备,以便及时进行任务对任务完成情况进行监控,并自动确定导致任务超期的异常任务。
在本公开实施方式的第一方面中,提供了一种任务监控方法,包括:
确定第一集合;所述第一集合由目标时段内需要执行的任务组成;所述目标时段为当前时刻所属时段的后一时段;
若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;所述基线任务为所述第一集合中设置有所述目标基线的任务;所述目标基线表征所述基线任务的目标完成时间;所述第一关键路径中包括至少一个第一关键任务;所述第一关键任务为所述第一集合中延期完成后会导致基线任务超期的任务;
获取第一基线的快照信息;所述快照信息用于记录历史任务和关联任务;所述关联任务为执行所述历史任务所依赖的任务;所述历史任务为所述当前时刻所属时段之前的历史时段内需要执行的,且设置有所述第一基线的任务;所述第一基线表征所述历史任务的目标完成时间,且所述第一基线对应的第一差值信息和所述目标基线对应的第二差值信息相同;所述第一差值信息为所述目标基线与所述目标时段的起始时间二者的差值;所述第二差值信息为所述第一基线与所述历史时段的起始时间二者的差值;
根据所述第一关键路径和所述快照信息,确定异常任务;所述异常任务为所述第一关键路径中导致基线任务无法按时完成的第一关键任务。
在本公开实施方式的第二方面中,提供了一种任务监控装置,包括:
第一确定单元,用于确定第一集合;所述第一集合由目标时段内需要执行的任务组成;所述目标时段为当前时刻所属时段的后一时段;
第二确定单元,用于若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;所述基线任务为所述第一集合中设置有所述目标基线的任务;所述目标基线表征所述基线任务的目标完成时间;所述第一关键路径中包括至少一个第一关键任务;所述第一关键任务为所述第一集合中延期完成后会导致基线任务超期的任务;
第一获取单元,用于获取第一基线的快照信息;所述快照信息用于记录历史任务和关联任务;所述关联任务为执行所述历史任务所依赖的任务;所述历史任务为所述当前时刻所属时段之前的历史时段内需要执行的,且设置有所述第一基线的任务;所述第一基线表征所述历史任务的目标完成时间,且所述第一基线对应的第一差值信息和所述目标基线对应的第二差值信息相同;所述第一差值信息为所述目标基线与所述目标时段的起始时间二者的差值;所述第二差值信息为所述第一基线与所述历史时段的起始时间二者的差值;
第三确定单元,用于根据所述第一关键路径和所述快照信息,确定异常任务;所述异常任务为所述第一关键路径中导致基线任务无法按时完成的第一关键任务。
在本公开实施方式的第三方面中,提供了一种计算机可读存储介质,包括:所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的方法。
在本公开实施方式的第四方面中,提供了一种计算设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述计算设备执行第一方面中任一项所述的方法。
根据本公开实施方式的任务监控方法、装置和计算设备,可以提前对未来时段内需要进行处理的任务进行监控,并在确定未来时段内需要执行的任务无法按时完成时,自动化确定导致任务超期的异常任务,以便后续及时提示用户进行相应的处理。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1为本公开实施例提供的一种应用场景示意图;
图2为本公开实施例提供的一种任务监控方法的流程示意图;
图3为本公开实施例提供的又一种任务监控方法的流程示意图;
图4为本公开实施例提供的一种确定关键路径的流程示意图;
图5为本公开实施例提供的一种关键路径的示意图;
图6为本公开实施例提供的第二种关键路径的示意图;
图7为本公开实施例提供的第三种关键路径的示意图;
图8为本公开实施例提供的另一种任务监控方法的流程示意图;
图9为本公开实施例提供的程序产品的示意图;
图10为本公开实施例提供的一种任务监控装置的结构示意图;
图11为本公开实施例提供的一种计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种任务监控方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语:
基线:针对任务设置的目标完成时间。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
另外,本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据,对数据的采集、传播、使用等,均符合国家相关法律法规要求,本公开实施方式/实施例可以互相组合。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,目前,在对调度系统中的任务进行监控时,当目标任务无法按时完成时,仅会告知用户无法按时完成的任务,而无法及时告知用户究竟是哪一任务导致上述目标任务无法按时完成(即,异常任务),进而,需要用户主动获取在目标任务之前执行的上游的全部任务的执行情况,并根据上游各任务的执行情况,确定出异常任务。上述排查方式,当目标任务上游的任务数量较多时,逐一排查上游的每一任务的方式的效率较低。
基于上述问题,本公开提供一种任务监控方法、装置和计算设备,该方法支持为多个任务中的部分或者全部任务设置各自所对应的基线。并且,提前确定出下一个时段内需要执行的任务所组成的第一集合,并提前确定第一时段内设置有基线的任务是否可以按时完成。若上述设置有基线的任务无法按时完成,则仅在第一集合中筛选出会上述设置有基线的任务超期的任务为第一关键任务。并将上述确定出的第一关键任务和历史时段内需要执行的任务的快照信息进行比对,以确定出是哪一第一关键任务导致上述设置基线的任务无法按时完成,进而提前对任务进行监控,降低后续任务无法按时完成的概率。并且,仅需要在第一关键任务中进行排查比对,以提高异常任务确定效率。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图1对本公开提供的方案的应用场景进行示例说明。图1为本公开实施例提供的一种应用场景示意图,如图1所示,在该应用场景中包括任务调度平台和任务监控平台。其中,任务调度平台用于根据预先配置的任务调度需求,确定各个时段内需要执行的任务,并执行上述任务。任务监控平台,可用于对任务调度平台中的每一时段下需要执行的任务的执行情况进行监控,以确定各任务当前所对应的执行状态、任务是否可以按时完成、各时段中的异常任务等。并且,本申请中的监控方法还可以应用于需要周期性执行的任务的监控,例如,每天都需要进行应用新注册用户确定任务、新注册用户在应用上浏览的信息(例如,搜索的音乐、电影、需要购买的商品等)、新注册用户在应用中的订购信息等的一系列任务的按天周期性执行的场景。需要说明的是,以上的应用场景仅为举例说明,此处不做具体限制。
示例性方法
下面结合图1的应用场景,参考图2-7来描述根据本公开示例性实施方式的任务监控方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图2为本公开实施例提供的一种任务监控方法的流程示意图。如图2所示,该方法包括以下步骤:
S201、确定第一集合;第一集合由目标时段内需要执行的任务组成;目标时段为当前时刻所属时段的后一时段。
示例性地,本实施例中的执行主体可以为任务监控装置,其中,任务监控可以为计算设备,其中,计算设备可以为服务器(如云端服务器,或者,本地服务器),也可以为计算机,也可以为终端设备,也可以为处理器,也可以为芯片等,本实施例不做限定。
本实施例中,可以按照任务的执行时间所归属的时段对需要执行的任务进行集合划分。举例来说,可以以天为单位进行时段的划分,一天中0点至24点之间需要执行的任务归属至同一集合中。
并且,本实施例中,会提前获取当前时刻所归属时段的后一个时段(即,未来的时段,本申请中称为目标时段)所对应需要执行的任务所组成的集合,即本申请中的第一集合。并在获取到目标时段的第一集合之后,在当前时刻所属的时段内,开始执行对第一集合中的任务进行监控处理,即确定任务是否可以按时完成的处理。
需要说明的是,针对于第一集合中所包含的任务还可以预先设置各自所对应的基线,即各自所对应的目标完成时间。并且,第一集合中的不同任务可以设置相同的基线,也可以设置不同的基线。
S202、若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;基线任务为第一集合中设置有目标基线的任务;目标基线表征基线任务的目标完成时间;第一关键路径中包括至少一个第一关键任务;第一关键任务为第一集合中延期完成后会导致基线任务超期的任务。
示例性地,在对第一集合中的任务进行监控处理时,可以确定第一集合中设置有基线的任务是否可以在其所对应的基线所指示的时间之前完成。若确定第一集合中设置有目标基线的基线任务无法按时完成,则可以在第一集合中确定基线任务所对应的第一关键路径。
需要说明的是,本实施例中的第一关键路径是由至少一个第一关键任务所组成的,且第一关键任务为延期执行后,会导致基线任务延期完成的任务。
一个示例中,在确定目标基线所对应的第一关键路径时,可以根据第一集合中各任务之间执行时的依赖关系,以及各任务的执行耗时,确定延期完成会影响基线任务的任务。例如,在确定上述第一关键任务时,首先可以为位于基线任务上游的任务设置其对应的延期完成时间,并在所配置的延期完成时间的基础上,结合该任务执行的最小耗时时长推测是否会影响基线任务的完成时间,若确定位于基线任务上游的任务会影响基线任务的完成时间,则将上述位于基线上游的任务确定为第一关键任务,进而确定第一关键路径。
S203、获取第一基线的快照信息;快照信息用于记录历史任务和关联任务;关联任务为执行历史任务所依赖的任务;历史任务为当前时刻所属时段之前的历史时段内需要执行的,且设置有第一基线的任务;第一基线表征历史任务的目标完成时间,且第一基线对应的第一差值信息和目标基线对应的第二差值信息相同;第一差值信息为目标基线与目标时段的起始时间二者的差值;第二差值信息为第一基线与历史时段的起始时间二者的差值。
示例性地,本实施例中,在历史时段下,当某一基线所对应的任务按时完成之后,对应的会将该基线所对应的任务,以及该任务执行过程中所依赖的上游的任务记录下来,得到基线所对应的快照信息。
若确定未来时段内的目标基线所对应的基线任务无法按时完成,则可以查找历史时段下的第一基线所对应的快照信息。需要说明的是,第一基线为历史时段内的历史任务所对应的目标完成时间。且,第一基线和目标基线各自所指示的目标完成时间符合相同的时序要求,即,第一基线和第一基线所处历史时段的起始时间之间的第一差值,等于目标基线所对应的第二差值。其中,第二差值为目标基线和目标时段的起始时间之间的差值。此外,快照信息中还包括有设置有第一基线的历史基线所对应的上游所依赖的关联任务。
举例来说,当以1小时为单位划分时,一天中若当前时段为9时到10时,目标时段为10时至11时,且目标基线为10时30分时。假设所选定的历史时段为5时至6时这一时段,则此时对应的第一基线为5时30分。一种可能的实现方式中,为了便于查找与目标基线所对应的时序要求相同的基线,针对于每一基线还可以设置基线标识,具有不同时段中具有相同基线标识的基线所对应的时序要求相同。
需要说明的是,本实施例中的历史时段可以为当前时段(即,当前时刻所属时段)之前的任一时段。具体地,在实际应用中可以选择与当前时段相邻的前一时段作为历史时段。并且在实际应用中,在选择历史时段时,还可以在当前时段之前的一系列时段中,若确定存在一个时段,该时段中所包含的全部任务都可以按期完成,则可以将该时段确定为历史时段。
在实际应用中,快照信息具体可以包括其所对应的基线的目标完成时间、基线对应的基线标识、设置有该基线的任务的任务标识、设置有该基线的任务的调度时间、设置有该基线的任务对应的上游的任务、以及上述各任务的运行耗时等,本实施例中不做具体限制。
S204、根据第一关键路径和快照信息,确定异常任务;异常任务为第一关键路径中导致基线任务无法按时完成的第一关键任务。
示例性地,在确定出目标时段所对应的第一关键路径,以及历史时段内所对应的快照信息之后,可以将第一关键路径中所包含的任务和快照信息中所包含的任务进行比对,以便在第一关键路径所包含的第一关键任务中查找出导致基线任务超期的第一关键任务。
举例来说,在确定异常任务时,可以从第一关键路径和快照信息各自所对应的任务执行时间(其中,任务在执行时需要在其对应设置的预设执行时间之后才可执行)、任务所对应依赖的上游的任务或者下游的任务等等多个不同的维度确定异常任务。
可以理解的是,本实施例中,通过提前对当前时段的后一时段所对应的任务进行监测,以提前确定后一时段中的任务是否可以按时完成,进而降低了后续任务无法按时执行完毕的概率。并且,本实施例中,在确定后一时段中的任务无法按时完成时,还可以结合后一时段中无法按时完成的任务所设置的目标基线所对应的第一关键路径和第一基线所对应的快照信息进行比对的方式来确定第一关键路径中导致后一时段任务无法按时完成的异常任务,以便后续用户可以在获知异常任务之后及时解决,确保后一时段中的任务可以如期完成。
此外,需要说明的是,图2中所提供的方法可以用于确定未来时段内导致任务无法按时完成的异常任务,而针对于当前时刻所属的第一时段内的任务,在确定导致任务无法按时完成的错误任务时,也可以通过如下步骤实现:在第一时段内,若确定第四任务无法按时完成,则确定第二基线对应的第二关键路径;第四任务为第二集合中设置有第二基线的任务;第二基线表征第四任务的目标完成时间;第二关键路径中包括至少一个第二关键任务;第二关键任务为第二集合中延期完成后会导致第四任务超期的任务;第一时段为当前时刻所属的时段;第二集合包括第一时段内需要执行的任务;确定处于未成功执行状态的第二关键任务为错误任务;错误任务为导致第四任务超期的任务。
示例性地,本实施例中将第一时段内需要完成的任务所对应的集合称为第二集合,并将第二集合中设置有第二基线的任务称为第四任务。在第一时段内,当确定第四任务无法按时完成时,首先可以在第二集合中确定第二关键路径,其中,第二关键路径和第一关键路径的原理类似,第二关键路径包括第二集合中延期后导致第四任务无法按时完成的第二关键任务。在确定出第二关键任务之后,确定各第二关键任务各自所对应的执行状态,并将执行状态为未成功执行的第二关键任务确定为导致第四任务超期的错误任务。
可以理解的是,本实施例中,在第一时段内监控第一时段内的任务时,若确定第四任务估计无法按时完成,则可以直接确定第二基线所对应的关键路径,并直接第二关键路径中无法成功执行的第二关键任务确定为错误任务。该实施例中,仅基于第二关键路径中的第二关键任务的执行情况即确定了错误任务,有利于提高错误任务确定的时效性,以便及时向用户发出提示。
此外,在实际应用中,在获取到第一集合和第二集合之后,进一步的还可以为第一集合设置第一集合所对应的第一监控频率,并为第二集合设置第二监控频率。其中,第一监控频率表征单位时间内确定第一集合中各任务的完成情况的次数;第二监控频率表征单位时间内确定第二集合中各任务的完成情况的次数;第一监控频率小于第二监控频率。具体地,监控频率可以理解为单位时间内监控集合内任务完成情况的次数。也就是说,为不同的时段设置不同的监控频率,并且,当前时刻所对应时段的第二监控频率大于未来时段(即,上述目标时段)所对应的第一监控频率。例如,在实际应用中,针对于当前时段,可以每10分钟监控一次,以确定当前时段内的任务是否可以按时完成,而针对于目标时段,可以每30分钟监控一次,以在当前时段内确定目标时段内的任务是否可以按时完成。即,未来时段所对应的监控频率小于当前时段所对应的监控频率,进而避免频繁对未来时段内的任务完成情况进行监控所导致的资源消耗过大的问题。并且当前时段内设置较小的监控频率有利于在基线任务无法完成时及时确定出异常任务,以便及时告知用户。
图3为本公开实施例提供的又一种任务监控方法的流程示意图。如图3所示,该方法包括以下步骤:
S301、确定第一集合;第一集合由目标时段内需要执行的任务组成;目标时段为当前时刻所属时段的后一时段。
S302、若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;基线任务为第一集合中设置有目标基线的任务;目标基线表征基线任务的目标完成时间;第一关键路径中包括至少一个第一关键任务;第一关键任务为第一集合中延期完成后会导致基线任务超期的任务。
S303、获取第一基线的快照信息;快照信息用于记录历史任务和关联任务;关联任务为执行历史任务所依赖的任务;历史任务为当前时刻所属时段之前的历史时段内需要执行的,且设置有第一基线的任务;第一基线表征历史任务的目标完成时间,且第一基线对应的第一差值信息和目标基线对应的第二差值信息相同;第一差值信息为目标基线与目标时段的起始时间二者的差值;第二差值信息为第一基线与历史时段的起始时间二者的差值。
示例性地,步骤S301-步骤S303可以参见步骤S201-步骤S203,此处不再赘述。
S304、按照执行顺序逆序地确定快照信息中是否存在第一同类任务;第一同类任务为与第一关键任务具有相同任务标识的历史任务或与第一关键任务具有相同任务标识的关键任务;任务标识用于标识具有相同处理规则的任务;第一关键路径具有第一上下游依赖关系;第一上下游依赖关系表征第一关键任务之间的执行顺序。
示例性地,本实施例中,第一关键路径中除了可以指示出所包含的第一关键任务,还可以指示出第一关键任务之间执行时的第一上下游依赖关系,进而得到第一关键任务之间的执行顺序。
之后,按照上述第一关键路径所表征的执行顺序,逆序的比对快照信息和第一关键路径中所包含的任务。
需要说明的是,本实施例中每一任务都具有各自所对应的任务标识,具有相同任务标识的不同任务所对应的任务处理规则相同。
在逆序地比对第一关键路径和快照信息时,首先可以确定当前所获取到的第一关键路径中的第一关键任务所具有的任务标识是否存在于快照信息所包含的任务的任务标识中。即,确定快照信息中是否存在有与第一关键任务具有相同任务标识的任务(即,第一同类任务)。
S305、若快照信息中不包括第一同类任务,则确定第一关键任务为异常任务,异常任务为第一关键路径中导致基线任务无法按时完成的第一关键任务。
示例性地,若确定快照信息中不存在第一同类任务,则表明上述第一关键任务为目标时段中的异常任务,也就是说由于目标时段中新增设了该异常任务进而导致了目标基线所对应的基线任务无法如期完成。
在一种可能的实现方式中,若确定快照信息中存在有与第一关键任务具有相同任务标识的任务,则可以继续逆序地获取其余的第一关键任务,并进行任务标识的比对。
可以理解的是,本实施例中,可以逆序地从设置有基线的第一关键任务为任务标识比对的起点,依次逆序的确定快照信息中是否存在上述任务标识。进而在第一关键路径中无法按时完成的基线任务逆序地查找比对,即优先查找与基线任务能否按时完成的关联最紧密的关键任务,以便尽快查找出第一关键路径中的异常任务。需要说明的是,在实际应用中也可以采用其余次序(例如,顺序、随机次序等)来比对快照信息和第一关键路径中的任务。
S306、若快照信息中包括第一同类任务,则确定差值结果和第一调度时间;差值结果为目标基线和第一基线二者之间的差值;第一调度时间为第一关键任务的预设开始执行时间。
示例性地,本实施例中,当快照信息中存在上述第一同类任务时,进一步的还可以比对快照信息中的第一同类任务所对应的调度时间和快照信息中的第一关键任务的调度时间。
需要说明的是,本实施例中,每一任务都预先配置有各自所对应的预设开始执行时间,且在确定任务是否可以执行时,除了需要确定该任务所依赖的上游的任务是否执行完毕,此外还需要确定是否到达了任务所对应的预设执行时间。即,任务只能在其所对应的预设开始执行时间之后执行。本实施例中,将快照信息中的第一同类任务所对应的预设开始执行时间称为第二调度时间。并将第一关键路径中与上述第一同类任务具有相同任务标识的第一关键任务所对应的预设开始执行时间称为第一调度时间。
并且,在比对第一调度时间和第二调度时间时,由于两个调度时间归属于不同的时段(其中,第一调度时间归属于目标时段,第二调度时间归属于历史时段),首先可以确定目标时段的起始时间和历史时段的起始时间这两个起始时间之间的时间间隔。本实施例中,用目标基线和第一基线二者之间的差值结果来表征二者之间的时间间隔。
S307、确定第一同类任务的第二调度时间;第二调度时间为第一同类任务的预设开始执行时间。
示例性地,第一同类任务所对应的第二调度时间可以记录在快照信息中,也可以从任务调度系统中获取,本实施例中不做具体限制。
S308、确定第二调度时间和差值结果二者的求和结果。
示例性地,本步骤中通过将第二调度时间和差值结果进行求和处理进而得到求和结果,以便将求和结果作为根据第二调度时间所预测得到的第一关键任务所对应的起始执行时间。
S309、若确定求和结果和第一调度时间不同,且第一关键路径中不存在第二任务,则确定第一关键任务为异常任务;第二任务为第一关键路径中第一关键任务所依赖的上游任务中的至少一个。
示例性地,若确定出求和结果所表征的起始执行时间和第一集合中的第一关键任务所实际设置的第一调度时间不同,则可以确定出上述第一关键任务会导致基线任务超期,并且,为了进一步确定该第一关键任务所对应的第一调度时间和求和结果不匹配是否是由于第一关键任务所对应的上游的任务所导致的,本实施例中还需要进一步确定在第一关键路径中,该第一关键任务的上游是否仍存在其所需要依赖的第二任务,以便查找出导致基线任务超期的源头。
若确定第一关键任务中不存在第二任务,则可以直接上该第一关键任务确定为异常任务。
可以理解的是,本实施例中,在确定快照信息和第一关键路径中存在具有相同任务标识的任务时,进一步地还可以通过上述方式对具有相同任务标识的两个任务各自所对应的调度时间进行比对,以便确定出是否存在调度时间变更而导致基线任务超期的可能性。并且,本实施例中在确定出第一调度时间和求和结果不匹配时,进一步的还会确定该第一关键任务是否仍存在上游所依赖的任务,以便查找出导致基线任务超期的任务源头。
S310、若确定求和结果和第一调度时间不同,且第一关键路径中存在第二任务,则按照执行顺序逆序地遍历第二任务以确定快照信息中是否存在第一同类任务。
示例性地,本实施例中,在确定出求和结果和第一调度时间不同时,进一步地,若第一关键路径中仍可以查找到第二任务所对应依赖的第二任务,则可以进一步的继续逆序的比对第二任务和上述快照信息,以继续查确定导致任务超期的任务源头。需要说明的是,本实施例中比对第二任务和快照信息的执行逻辑可以参照上述步骤S304-S309来执行,此处不再赘述。
可以理解的是,本实施例中,通过优先比对快照信息和第一关键路径中是否存在具有相同任务标识的任务,并且,在确定具有相同任务标识的情况下,还会比对具有相同任务标识的两个任务各自所对应的调度时间(即,上述比对调度时间和求和结果的步骤)以便准确确定出导致基线任务超期的目标任务。
在上述任一实施例的基础上,在确定出异常任务之后,进一步的还可以生成告警信息,以便及时告知用户未来基线任务无法按期完成的原因,进而方便用户及时进行任务调整,以确保目标时段内的任务可以如期执行。
一个示例中,在生成告警信息时,可以将唯一标识上述异常任务的标识信息作为告警信息所携带的内容。举例来说,上述唯一标识可以由异常任务所对应的任务标识以及异常任务对应的第二调度时间二者结合起来作为异常任务的唯一标识信息。
一个示例中,在根据异常任务,生成告警信息,包括:
若确定快照信息不包括第二同类任务,则生成携带有第一告警内容的告警信息;第一告警内容表征第一关键路径中存在新增的任务;第二同类任务为与异常任务具有相同任务标识的历史任务或与异常任务具有相同任务标识的关键任务;任务标识用于标识具有相同处理规则的任务。
示例性地,本实施例中,在确定出异常任务,并生成告警信息时,首先可以确定快照信息中是否存在有与异常任务具有相同任务标识的第二同类任务,若不存在,则进一步的可以确定是由于未来时段内是由于新增了上述异常任务才导致的基线任务超期,进而可以在告警信息中携带上述第一告警内容,以便告知用户是由于新增任务所导致的任务超期。进而,通过上述携带第一告警内容的告警方式,可以方便用户及时确定超期原因,并进行相应的处理,例如,是否保留上述异常任务,或者调整基线任务所对应的目标基线等处理方式。
一个示例中,第一告警内容还用于表征新增的任务是否为新挂载在目标基线的基线任务。本实施例中,当基线任务被确定为异常任务时,还会及时基于第一告警内容告知用户当前异常任务为基线任务,以便丰富告警内容,提高用户使用体验。
例如,若历史时段的快照信息中不存在与基线任务具有相同任务标识的任务,则此时可以发出如下告警信息:“目标时段内的目标基线预计超期;诊断结论:基线任务为新增任务,且设置有目标基线”。
又或者,在确定出基线任务上游多个第一关键任务中存在新增的任务,则此时可以发出如下告警信息:“目标时段内的目标基线预计超期;诊断结论:基线任务上游存在新增的任务,新增任务为第一关键任务A”。
一个示例中,在生成告警信息,还可以包括以下步骤:
若确定快照信息包括第二同类任务,则生成携带有第二告警内容的告警信息;其中,第二告警内容表征异常任务的第三调度时间发生变更而导致基线任务无法按时完成;第三调度时间为异常任务的预设开始执行时间;第二同类任务为与异常任务具有相同任务标识的历史任务或与异常任务具有相同任务标识的关键任务;任务标识用于标识具有相同处理规则的任务。
示例性地,本实施例中,当确定快照信息中存在包括有异常任务所对应的任务标识的第二同类任务时,则可以确定该异常任务是由于其所对应的第三调度时间被修改进而导致基线任务超期。进而,在生成的告警信息中也可以携带上述用于指示调度时间被修改所导致的任务超期的第二告警内容。举例来说,在上述场景下可以发出如下告警信息:“目标基线下的基线任务A预计无法在目标基线之前运行成功;诊断结论:第一关键任务B的预设开始执行时间发生变更导致下游任务延迟执行。”
可以理解的是,本实施例中在确定出异常任务之后,还会进一步的通过告警信息,告知用户存在异常任务的原因,即异常任务为新增或者预设开始执行时间变更等原因所导致的,以便用户针对性地解决上述问题。
在一些实施例中,在执行上述任一实施例中的步骤“确定目标基线对应的第一关键路径”可以参照图4所示的步骤实现。图4为本公开实施例提供的一种确定关键路径的流程示意图,该方法包括以下步骤:
S401、确定第一集合的第二上下游依赖关系;第二上下游依赖关系表征第一集合中各任务之间的依赖顺序。
示例性地,本实施例中在对目标时段内所对应的第一集合进行监控,且确定出第一集合中设置有目标基线的基线任务无法按期完成时,为了确定出目标基线所对应的第一关键路径,首先需要确定第一集合中各任务之间所对应的第二上下游依赖关系。其中,第二上下游依赖关系可以表征出第一集合中各任务之间的依赖关系(即上述依赖顺序),并且依赖关系还可以指示出两个任务之间的执行顺序。
S402、根据第二上下游关系,构建有向无环图;其中,有向无环图中包括起始节点、至少一个基线节点、以及与第一集合中的任务一一对应的任务节点;有向无环图中不同任务节点之间的有向边表征任务节点之间依赖顺序;起始节点和任务节点之间的有向边表征任务节点不具备上游任务;任务节点和基线节点之间的有向边表征任务节点所对应的任务设置有目标基线。
示例性地,在确定出第一集合所对应的第二上下游依赖关系之后,可以建立一个以第一集合中所包含的任务作为节点的有向无环图,并根据第二上下游依赖关系,采用有向边连接具有依赖关系的任务节点,并由有向边的方向指示出两个任务节点的依赖顺序。此外,本实施例中所构建的有向无环图中除了包括任务节点,还包括有起始节点以及至少一个基线节点。其中,起始节点和不具备上游任务的任务节点相连接,以便可以基于起始节点所连接的有向边快速定位出第一集合中无上游任务的起始节点。此外,有向无环图中基线节点和设置有基线的任务节点相连接,且任务节点所对应的基线与基线节点所表征的基线相同。以便可以通过基线节点的连接关系快速定位出设置有其所对应的基线的任务。
需要说明的是,一个基线节点表征一个基线,即基线节点和第一集合所对应的基线一一对应。
S403、确定每一任务节点各自对应的第四调度时间和每一任务节点各自的运行耗时;第四调度时间为任务节点的预设开始执行时间。
示例性地,本实施例中,有向无环图中的有向边还可以设置有权值,每个有向边的权值用于表征该有向边的起点所对应的任务的运行耗时。因此,本实施例中,在构建得到有向无环图之后,还需要获取到各任务节点所对应的运行耗时。此外,还需要获取各任务节点所对应的第四调度时间,即,任务节点所表征的任务所对应的预设开始执行时间。
本实施例中,对于运行耗时的确定方式不做具体限制,例如,可以采用将各历史时段中执行相同任务处理的各任务的历史耗时,预测本次任务的运行耗时。
一个示例中,若任务节点对应的任务已执行完毕,则运行耗时为执行任务所消耗的时长;或者,若任务节点对应的任务执行失败,则运行耗时为任务的历史平均运行耗时和任务节点的故障修复耗时二者之和;或者,若任务节点对应的任务处于运行状态中,则运行耗时为第一值和任务的历史平均运行耗时二者之中的最大值;其中,第一值为当前运行时刻和任务的本次运行的开始时间二者之间的差值;或者,若任务节点对应的任务处于未执行状态,则运行耗时为任务的历史平均运行耗时。
示例性地,本实施例中可以结合任务所对应的执行状态,分情况确定任务所对应的运行耗时。当任务节点对应的任务成功执行完毕时,则可以将执行该任务时所消耗的时间作为运行耗时。若任务节点所对应的任务处于未成功执行状态,则可以将任务所对应的历史平均运行耗时以及故障修复耗时二者之和作为该任务所对应的运行耗时。其中,故障修复耗时可以理解为用户处理上述未执行成功的任务所需要消耗的时长。
此外,若任务当前处于运行状态中时,还可以将当前运行时刻和当前任务执行的开始时间之间的差值作为第一值,并比较第一值和历史时段下执行与该任务具有相同处理规则的任务时所消耗的历史平均耗时时长,进而选择其中的最大值作为任务当前对应的运行耗时,进而避免在本次运行耗时超出历史平均运行耗时的情况下,直接采用历史平均运行耗时所导致的运行耗时确定不准确的问题。
并且,当任务当前处于未运行状态时,则可以直接将历史时段中的与该任务的处理规则相同的任务的历史平均运行耗时,作为当前该任务的运行耗时。
可以理解的是,本实施例中针对于具有不同执行状态的任务设置不同的运行耗时确定方式,有利于提高运行耗时的准确率,进而提高后续第一关键路径确定的准确性。
S404、根据有向无环图、第四调度时间以及运行耗时,确定第一关键路径。
示例性地,本实施例中,在确定出有向无环图、各任务节点的运行耗时以及第四调度时间之后,可以进一步确定出上述超期的基线任务所对应的第一关键路径。
举例来说,在确定第一关键路径时,针对有向无环图中的任一任务,基于该任务所对应的第四调度时间,随机确定一个取值大于上述第四调度时间的时间值为该任务所对应的执行时间。并结合有向无环图以及各任务所对应的运行耗时,确定该任务超期完成时,是否会导致基线任务超期。若会导致基线任务超期,则确定该任务为第一关键路径中的任务,进而确定出第一关键路径。
可以理解的是,本实施例中在有向无环图中除了设置有任务节点,还增设有基线节点和起始节点,以便可以尽快定位出有向无环图中无上游任务的任务节点以及设置有基线的任务节点,提高第一关键路径确定的便捷性和时效性。
一个示例中,在执行步骤S404时,可以包括以下步骤:
按照依赖顺序正序地确定有向无环图中的任务节点的第一时间和基线节点的第二时间;其中,第一时间表征任务可以开始执行的最早时间;基线节点的第二时间为与基线节点连接的任务节点各自所对应的可最早完成的时间中的最大值;按照依赖顺序逆序地确定有向无环图中任务节点的第三时间和基线节点的第四时间;其中,第四时间的取值被配置为第二时间的取值;第三时间表征任务可以开始执行的最晚时间;若确定任务节点所对应的第一时间和第三时间的取值相同,则确定任务节点所对应的任务为第一关键路径中的第一关键任务;并确定有向无环图中第一关键任务所连接的路径为第一关键路径。
示例性地,本实施例中,在确定第一关键路径中,首先根据有向无环图中所指示的依赖顺序,正序地确定任务节点所对应的可以执行地最早时间,即上述第一时间。需要说明的是,可以执行的最早时间可以理解为任务节点的上游任务均执行完毕,且位于任务节点所对应的第四调度时间之后的最早时间。在根据上述依赖顺序依次确定出各任务节点的第一时间之后,可以将有向无环图中基线节点所对应的第二时间配置为基线节点所连接的各任务节点所对应的最早执行结束时间中的最大值。需要说明的是,任务节点所对应的最早执行结束时间可以根据任务节点所对应的第一时间以及任务节点的运行耗时来确定。
之后,可以根据依赖顺序,逆序地确定各任务节点所对应可以执行的最晚的时间,即上述第三时间。需要说明的是,任务节点的第三时间受其下游所对应的任务节点的最晚执行的时间影响,即一个任务的第三时间需要确保其下游任务的执行时间不会超出该下游任务所对应的第三时间。
在确定出各任务节点的第一时间和各任务节点的第三时间之后,可以将具有相同第一时间和第三时间的任务节点确定为第一关键任务,即上述第一关键任务所对应的最早执行时间和最晚执行时间相同,即上述任务无法延期执行,若上述任务延期执行则一定会导致基线任务超期。
之后,可以将确定出的第一关键任务,以及第一关键任务之间的依赖顺序作为本实施例中需要确定地第一关键路径。
可以理解的是,本实施例中,通过将具有相同第三时间和第一时间的任务确定为第一关键任务的方式来确定第一关键路径,以提高第一关键路径所确定的准确性。
一个示例中,在执行上述“确定任务节点所对应的第一时间”的步骤时,可以通过以下步骤实现:
“按照依赖顺序正序地获取有向无环图中的任务节点;若任务节点与起始节点连接,则确定任务节点的第四调度时间为任务节点的第一时间;若任务节点未与起始节点连接,则确定任务节点的前驱节点;其中,前驱节点为有向无环图中与任务节点连接,且依赖顺序位于任务节点之前的节点;确定前驱节点的第一时间和前驱节点的运行耗时二者之和为第二值;并确定第二值和任务节点的第四调度时间中的最大值为任务节点的第一时间。”
示例性地,本实施例中在确定任务节点所对应的任务可以执行的最早时间(即,第一时间)时,可以按照依赖顺序正序地获取当前需要确定第一时间的任务节点,若该任务节点为与起始节点连接的任务节点,则确定该任务节点无需依赖上游节点,则该任务节点所对应的第一时间仅受自身所对应的第四调度时间的约束,即,可以直接将第四调度时间确定为第一时间。
若当前需要确定第一时间的任务节点未与起始节点连接,则首先在有向无环图中确定位于该任务节点上游且该任务节点所依赖的其余任务节点为该任务节点的前驱节点。需要说明的是,一个任务节点所对应的前驱节点在实际应用中的数量可能为多个也可能为一个。并且,在确定任务节点所对应的第一时间时,需要将各前驱节点所对应的最早可以结束时间和任务节点对应的第四调度时间综合考虑,其中,前驱节点对应的最早可以结束时间为前驱节点所对应的第一时间(即,前驱节点对应的任务可以最早执行的时间)和前驱节点的运行耗时二者之和(即,上述第二值)。在确定出各前驱节点各自的第二值之后,可以在多个第二值和当前该任务节点的第四调度时间中筛选出其中的最大值作为该任务节点的第一时间。
可以理解的是,本实施例中,通过综合考虑任务节点所对应的前驱节点的第二值和当前任务节点的第四调度时间,并确定其中的最大值作为任务节点的第一时间,可以确保所确定的第一时间的准确性。
一个示例中,在执行“确定任务节点的第三时间”的步骤时,可以通过以下步骤实现:“按照依赖顺序正序地获取有向无环图中的任务节点;确定任务节点的后继节点;其中,后继节点为有向无环图中与任务节点连接,且依赖顺序位于任务节点之后的节点;若后继节点并非基线节点,则确定后继节点的第三时间和任务节点的运行耗时二者的差值为第三值;确定第三值中的最小值为任务节点的第三时间;若后继节点为基线节点,则确定后继节点的第四时间和任务节点的运行耗时二者的差值为任务节点的第三时间”
示例性地,本实施例中,在根据依赖顺序逆序地确定各任务节点的第三时间(即,可以执行的最晚时间),首先可以在有向无环图中将与任务节点相连接,且位于任务节点的依赖顺序之后(即任务节点下游)的其余节点作为该任务节点的后继节点。需要说明的是,在实际应用中一个任务节点可能对应多个后继节点,也可能仅对应一个后继节点。
若当前需要确定第三时间的任务节点的后继节点为基线节点,则直接将基线节点所对应的最晚完成时间(即,上述第四时间)和当前任务节点的运行耗时之间的差值,确定为该任务节点的第三时间。若任务节点对应的后继节点不是基线节点,则针对每一后继节点,确定该后继节点的第三时间(即,最晚可以执行的时间)与任务节点的运行耗时之间的差值,即上述第三值。在得到各后继节点的第三值之后,可以在各后继节点的第三值中选择最小值作为任务节点的第三时间,进而,通过选择最小值的方式,以确保任务节点的执行结束时间不会超出各后继节点所对应的第三时间。
可以理解的是,本实施例中,通过结合任务节点所对应的后继节点以及后继节点是否为基线节点,逆序地确定各任务节点的第三时间,以确保任务节点的最晚执行结束时间不会超出其所对应的后继节点最晚需要执行的时间,以便确保后续关键路径确定的准确性,并准确地识别出异常任务。
图5为本公开实施例提供的一种关键路径的示意图。如图5所示,以基线A为例进行说明。其中,设置有基线A的任务共3个,分别对应图中的V5、V4、V2三个任务节点,且,V2、V3依赖V1,V4依赖V2、V3,V5依赖V3。此外,V1任务节点上游不存在需要依赖的任务,因此与起始节点所连接。并且,节点与节点之间的连接线上的数值用于表征该连接线的起点的节点的运行耗时,且每一节点所对应的第四调度时间用st表征。基线节点对应的st可以理解为基线对应的目标完成时间。从图中可以看出,V1的第四调度时间为0点0分,运行耗时30分钟;V2的第四调度时间为1点0分,运行耗时30分钟;V3的第四调度时间为0点40分,运行耗时50分钟;V4的第四调度时间为0点0分,运行耗时60分钟;V5的第四调度时间为1点00分,运行耗时20分钟。
在图5所示的关键路径的基础上,图6为本公开实施例提供的第二种关键路径的示意图。如图6所示,图6中用ve1来表征任务节点所对应的第一时间,ve2表征基线节点的第二时间。需要说明的是,图6中的第一时间和第二时间可以根据图4中所示的方法确定,此处不再赘述。
在图6所示的关键路径的基础上,图7为本公开实施例提供的第三种关键路径的示意图。图7中用vl1表征任务节点所对应的第三时间,vl2表征基线节点所对应的第四时间。需要说明的是,图7中的第三时间和第四时间可以根据图4中所示的方法确定,此处不再赘述
根据图7所示,通过比对各任务节点所对应的第三时间和第一时间,由于V3的第三时间和V3的第一时间相同,则可以确定V3为一个第一关键任务。同样地,V2、V4也可以被分别确定为第一关键任务。之后,由第一关键任务和第一关键任务之间的依赖顺序得到第一关键路径。即,图中对应两条第一关键路径:V3、V4、基线节点所组成的路径,以及V2、V4、基线节点所组成的路径。
图8为本公开实施例提供的另一种任务监控方法的流程示意图,如图8所示,该方法包括以下步骤:
S801、初始化生成目标时段对应的第一集合,以及与第一时段对应第二集合;其中,第一时段为当前时刻所属的时段;第二集合包括第一时段内需要执行的任务。
示例性地,本实施例中,在进行任务监控之前,首先可以初始化确定第一时段内需要执行的任务所对应的集合(即,第二集合),以及目标时段内需要执行的任务所对应的第一集合。在后续对各时段内的任务进行监控时,可以根据初始化所得到的集合,以及监控时间与初始化集合所对应的时间之间所接收到的指示修改集合的指令,确定在监控时间下所对应的更新后的集合,之后,再对更新后的集合进行任务监控。需要说明的是,本实施例中,每个时段中都会确定本时段中所对应的第二集合以及提前生成本时段的后一时段需要执行的任务的第一集合,以便提前对当前时段的后一时段中的任务进行监控,提前确定下一时段中的任务是否可以按时完成。并且,第一时段所对应的第二集合可以为第一时段的前一时段下就提前确定好的。此外,在实际应用中,各时段所对应的任务所组成的集合中可以包括各任务所对应的实例信息。其中,实例信息中可以包括有任务所对应的任务标识、实例标识(用于唯一标识实例信息)、任务的调度时间以及任务的执行状态等,本实施例中不做具体限制。
可以理解的是,本实施例中,在初始化任务集合时,会提前初始化两个时段各自所对应的集合,以便后续可以提前对未来时段所对应的集合中的任务进行监测,实现对异常任务的提前排查,降低未来时段内任务出现异常的概率。
S802、初始化生成第一队列。
示例性地,在初始化生成各时段所对应的集合之后,仍需要监控各时段中需要执行的任务是否发生了变更,以便可以及时更新集合中的内容。本实施例中,可以生成一个第一队列,以便可以记录时段中集合对应的任务发生变更的情况。
S803、在第一时段内,若监听到已成功执行完毕的任务,则在第一队列中添加第一通知信息;第一通知信息用于指示设置已成功执行完毕的任务的状态信息为已成功执行状态。
示例性地,本实施例中,第二集合中记录有第二集合中各任务所对应的状态信息,以便用状态信息表征任务是否执行完毕。在当前时刻所处的第一时段中,可以实时监控第一时段中已经执行完了哪些任务,并且,每监听到新的已成功执行完毕的任务时,都可以在第一队列中添加一条第一通知信息,来记录需要对上述任务的任务状态信息进行修改,并修改为已成功执行状态的信息。
S804、获取第一通知信息,若确定第二集合中不包括已成功执行完毕的任务,则在第一集合中添加已成功执行完毕的任务以及已成功执行完毕的任务的状态信息,并将状态信息设置为已成功执行状态。
示例性地,在写入上述第一通知信息之后,后续若在对第一队列中的信息进行消费过程中,当消费到上述第一通知信息时,可以结合第一通知信息所指示的内容,对上述已成功执行完毕的任务的执行状态进行修改。在修改过程中,首先可以在第一时段所对应的第二集合中查找是否存在上述已成功执行完毕的任务。若存在,则直接执行上述修改。若不存在,则表征已成功执行完毕的任务为第一时段中新添加的任务,则可以直接在第二集合中记录上述已成功执行完毕的任务,并将其所对应的状态信息配置为已成功执行完毕状态。
可以理解的是,本实施例中,可以实时监控第一时段中已经成功执行的任务,并修改第一集合中的任务所对应的状态信息,以便通过上述操作,准确确定第一时段中的任务执行情况,以便后续也可以基于第一时段中的任务执行情况确定未来时段内的任务是否可以按时执行。
S805、确定第一集合;第一集合由目标时段内需要执行的任务组成;目标时段为当前时刻所属时段的后一时段。
S806、若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;基线任务为第一集合中设置有目标基线的任务;目标基线表征基线任务的目标完成时间;第一关键路径中包括至少一个第一关键任务;第一关键任务为第一集合中延期完成后会导致基线任务超期的任务。
S807、获取第一基线的快照信息;快照信息用于记录历史任务和关联任务;关联任务为执行历史任务所依赖的任务;历史任务为当前时刻所属时段之前的历史时段内需要执行的,且设置有第一基线的任务;第一基线表征历史任务的目标完成时间,且第一基线对应的第一差值信息和目标基线对应的第二差值信息相同;第一差值信息为目标基线与目标时段的起始时间二者的差值;第二差值信息为第一基线与历史时段的起始时间二者的差值。
S808、根据第一关键路径和快照信息,确定异常任务;异常任务为第一关键路径中导致基线任务无法按时完成的第一关键任务。
示例性地,本实施例中,步骤S805-S808可以参见步骤S101-S104,需要说明的是,步骤S805可以执行于步骤S801之后,即可以并行执行状态信息修改过程(即,步骤S802-S804),以及目标时段内的异常任务确定过程(即,步骤S805-S808)。
在一些实施例中,在步骤S801之后,还可以包括以下步骤:“初始化第二队列;在第一时段内,响应于接收到的新增指令,在第二队列中添加第二通知信息;新增指令用于指示新增第一任务以及第一任务的执行时间;第一任务具有第一任务标识;第二通知信息用于指示第一任务标识;获取第二通知信息,并生成第一任务信息;第一任务信息用于记录第一任务的任务执行信息;确定第一任务的执行时间所属的时段为第二时段,并在第二时段对应的第一任务集合中添加第一任务信息;第一任务集合用于记录需要在第二时段内执行的任务。”
示例性地,本实施例中,在第一时段内不仅可以监控已执行完成的任务有哪些,还可以监听当前所接收到的指令。若确定接收到需要新增任务的新增指令时,还可以在第二队列中添加第二通知信息,以基于第二通知信息记录上述新增指令中需要新增的第一任务所对应的第一任务标识。当在第二队列中消费到上述第二通知信息时,则可以根据第二通知信息对应的新增指令确定当前需要新增的第一任务所对应的执行时间,并确定第一任务的执行时间所对应归属的第二时段。并且,还可以生成新增的第一任务所对应的第一任务信息,其中,第一任务信息可以表征到获取到上述第二通知信息时,该第一任务所对应的任务执行信息,例如,是否已被执行、调度时间、任务标识、是否设置有基线等信息。
之后,将上述确定出的第一任务信息添加至第二时段所对应的第一任务集合中。需要说明的是,此处的第一任务集合,与上述第一集合、第二集合类似,用于记录第一任务集合所对应的第二时段内需要执行的任务。
可以理解的是,本实施例中还可以实时监听用于新增任务的新增指令,并在第二队列中相应的添加上述新增指令对应的第二通知信息,以便后续可以及时更新各时段所对应的任务集合。并且,上述第一队列和第二队列可以为两个不同的队列,也可以为一个队列,本实施例中不做具体限制。
在一些实施例中,在上述“初始化第二队列”的步骤之后,还可以包括以下步骤:“在第一时段内,响应于接收到的修改指令,则在第二队列中添加第三通知信息;修改指令用于指示修改第二任务的第二任务信息以及修改后的任务信息;第二任务为具有第二任务标识的任务;第三通知信息用于指示第二任务标识;获取第三通知信息,并确定包括有第二任务信息的集合为第二任务集合;若确定第二任务集合中的第二任务处于未执行状态,则确定修改后的任务信息为第二任务集合中第二任务的任务信息”
示例性地,本实施例中,在第一时段内还可以监控用于指示对任务进行修改的修改指令。在修改指令中可以携带有需要修改的第二任务当前所对应的第二任务信息,以及需要修改后所对应的修改后的任务信息。并且,和上述新增指令场景类似,本实施例中,在基于接收到的修改指令,生成第三通知信息时,可以仅在第三通知信息中修改指令所指示的第二任务的任务标识。在后续消费到上述第三通知信息时,可以根据第三通知信息所对应的修改指令,查找包括上述第二任务信息的集合。并在查找到的集合中,对第二任务所对应的任务信息进行修改,即将修改指令中指示的修改后的任务信息确定为第二任务所对应的新的任务信息。需要说明的是,本实施例中修改指令在实际应用中可以包括修改任务所对应的调度时间、任务对应的上下游等,本实施例中不做具体限制。
可以理解的是,本实施例中还可以实时监听用于修改任务的修改指令,并在第二队列中相应的添加上述修改指令对应的第三通知信息,以便后续可以及时更新各时段所对应的任务集合。并且,第三通知信息中仅用于携带任务标识,以减少队列所占用的存储空间。
在一些实施例中,在上述“初始化第二队列”的步骤之后,还可以包括以下步骤:“在第一时段内,响应于接收到的删除指令,则在第二队列中添加第四通知信息;删除指令用于指示删除第三任务;第三任务为具有第三任务标识的任务;第四通知信息用于指示第三任务标识;根据第四通知信息,在第一集合和第二集合中,确定包括有第三任务的集合为第三任务集合;若确定第三任务集合中的第三任务处于未执行状态,则删除第三任务集合中第三任务以及第三任务的第三任务信息。”
示例性地,本实施例中,在第一时段内还可以监控用于指示对任务进行删除操作的删除指令。在删除指令中可以携带有需要删除的第三任务,本实施例中以需要删除的任务为携带有第三任务标识的第三任务为例说明。当删除指令指示删除携带有第三任务标识的任务时,首先可以在第二队列中添加删除指令对应的第四通知信息并用第四通知信息记录对应的第三任务标识。在后续消费到上述第四通知信息时,可以根据第四通知信息所对应的删除指令,在上述第一集合和第二集合中查找包括携带有上述第三任务标识的任务所处的集合,并将包括上述第三任务标识的集合作为第三任务集合。需要说明的是,在实际应用中一个任务标识可以标识多个具有相同处理规则的任务,因此,此处第三任务集合的数量可能为多个。在确定出第三任务集合之后,进一步地还需要对该第三任务集合中的状态信息进行检测,若确定第三任务处于未执行状态时,则直接删除该第三任务集合中删除其所包含的第三任务,以及第三任务对应的任务信息。一个示例中,若确定第三任务处于已执行状态,进一步的为了准确记录各时段内执行的任务,且不影响第三任务下游的任务的执行,在第三任务为已执行状态时,则不对其以及第三任务所对应的第三任务信息进行删除处理。
可以理解的是,本实施例中,在指示删除第三任务时,还可以对第三任务的状态信息进行检测,确定当前是否执行,以避免直接删除处于执行中或者执行结束的第三任务容易导致第三任务的下游任务无法准确执行的问题。并且,结合上述实施例,将针对任务的任务信息进行修改、变更、新增的指令所对应的通知信息写入同一队列中,可以确保消息执行的有序性。
一个示例中,当确定需要初始化生成第一集合和第二集合时,也可以先在第二队列中添加一个第五通知信息,以指示上述初始化步骤。即,初始化集合的通知信息和上述针对任务信息进行修改、变更、新增的通知信息位于同一队列中,以确保初始化生成集合和执行对集合中任务信息变更新增等的处理可以有序执行。
举例来说,当监控设备确定当前需要进行任务集合初始化处理时,首先在一个消息队列1中添加上述需要进行任务集合初始化的通知信息。之后,当监控设备消费到上述初始化的通知信息之后,可以将初始化后得到的两个任务集合(例如,上述实施例中的第一集合和第二集合)存储下来。需要说明的是,任务集合中可以包括有各任务所对应的任务信息,本实施例中对任务信息的内容不做具体限制。
在当前时段内,监控设备可以实时监控该时段内已成功执行的任务,并在消息队列2中写入指示修改状态信息为已成功执行状态的第一通知信息,以便后续消费到上述第一通知信息时,可以及时进行状态信息修改。
并且监控设备还可以实时监控该时段内用户操作触发的请求(例如,上述新增请求、修改请求、删除请求),并生成请求对应的通知信息将通知信息写入消息队列1中,以便对重新对当前时段或未来目标时段所对应的集合进行调整。
此外,监控设备还需要对当前时段内的任务的任务完成情况进行监控并对当前时段的后一时段内的任务完成情况进行监控,以预估上述各时段内的设置有基线的任务的预计完成情况,即是否会延期完成。并在确定存在无法按时完成的任务时,结合无法按时完成的任务对应的基线的关键路径,及时确定导致其无法按时完成的异常任务,实现任务监控。
例如,上述实施例中,针对当前时段的后一时段(即,上述目标时段),采用比对目标时段中无法完成的任务的基线所对应的第一关键路径,和与上述无法完成的任务的基线具有相同基线标识的历史时段内的第一基线所对应的快照信息比对的方式,确定异常任务。针对当前时段,采用确定当前时段内无法完成的任务的基线所对应的第二关键路径中各任务的执行情况,确定错误任务,以便通过上述方式及时定位当前时段内的错误任务,并提前一个周期确定目标周期内的异常任务,以便提前告知用户并进行相应的处理。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图9对本公开示例性实施方式的存储介质进行说明。
参考图9所示,存储介质90中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机执行指令,该计算机执行指令用于使计算设备执行本公开所提供的任务监控方法。然而,本公开的程序产品不限于此。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机执行指令。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的计算机执行指令,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。计算机执行指令可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图10对本公开示例性实施方式的任务监控装置1000进行说明,用于实现上述任一方法实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图10为本公开实施例提供的一种任务监控装置的结构示意图,如图10所示,该装置包括:
第一确定单元1001,用于确定第一集合;所述第一集合由目标时段内需要执行的任务组成;所述目标时段为当前时刻所属时段的后一时段;
第二确定单元1002,用于若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;所述基线任务为所述第一集合中设置有所述目标基线的任务;所述目标基线表征所述基线任务的目标完成时间;所述第一关键路径中包括至少一个第一关键任务;所述第一关键任务为所述第一集合中延期完成后会导致基线任务超期的任务;
第一获取单元1003,用于获取第一基线的快照信息;所述快照信息用于记录历史任务和关联任务;所述关联任务为执行所述历史任务所依赖的任务;所述历史任务为所述当前时刻所属时段之前的历史时段内需要执行的,且设置有所述第一基线的任务;所述第一基线表征所述历史任务的目标完成时间,且所述第一基线对应的第一差值信息和所述目标基线对应的第二差值信息相同;所述第一差值信息为所述目标基线与所述目标时段的起始时间二者的差值;所述第二差值信息为所述第一基线与所述历史时段的起始时间二者的差值;
第三确定单元1004,用于根据所述第一关键路径和所述快照信息,确定异常任务;所述异常任务为所述第一关键路径中导致基线任务无法按时完成的第一关键任务。
在本公开的一个实施例中,所述第一关键路径具有第一上下游依赖关系;所述第一上下游依赖关系表征所述第一关键任务之间的执行顺序;
第三确定单元,包括:
第一确定模块,用于按照所述执行顺序逆序地确定所述快照信息中是否存在第一同类任务;所述第一同类任务为与第一关键任务具有相同任务标识的历史任务或与第一关键任务具有相同任务标识的关键任务;所述任务标识用于标识具有相同处理规则的任务;
第二确定模块,用于若所述快照信息中不包括所述第一同类任务,则确定所述第一关键任务为异常任务。
在本公开的一个实施例中,所述装置还包括:
第三确定模块,用于若所述快照信息中包括所述第一同类任务,则确定差值结果和第一调度时间;所述差值结果为所述目标基线和所述第一基线二者之间的差值;所述第一调度时间为所述第一关键任务的预设开始执行时间;
第四确定模块,用于确定所述第一同类任务的第二调度时间;所述第二调度时间为所述第一同类任务的预设开始执行时间;
第五确定模块,用于确定所述第二调度时间和所述差值结果二者的求和结果;
第六确定模块,用于若确定所述求和结果和所述第一调度时间不同,且所述第一关键路径中不存在第二任务,则确定所述第一关键任务为异常任务;所述第二任务为所述第一关键路径中所述第一关键任务所依赖的上游任务中的至少一个。
在本公开的一个实施例中,所述装置还包括:
若确定所述求和结果和所述第一调度时间不同,且所述第一关键路径中存在所述第二任务,则按照所述执行顺序逆序地遍历第二任务以确定所述快照信息中是否存在第一同类任务。
在本公开的一个实施例中,所述装置还包括:
第一生成单元,用于根据所述异常任务,生成告警信息;其中,所述告警信息用于指示所述基线任务无法按时完成的原因。
在本公开的一个实施例中,第一生成单元,包括:
第一生成模块,用于若确定所述快照信息不包括第二同类任务,则生成携带有第一告警内容的告警信息;所述第一告警内容表征所述第一关键路径中存在新增的任务;所述第二同类任务为与异常任务具有相同任务标识的历史任务或与异常任务具有相同任务标识的关键任务;所述任务标识用于标识具有相同处理规则的任务。
在本公开的一个实施例中,所述第一告警内容还用于表征所述新增的任务是否为新挂载在所述目标基线的基线任务。
在本公开的一个实施例中,根据所述异常任务,第一生成单元,包括:
第二生成模块,用于若确定所述快照信息包括第二同类任务,则生成携带有第二告警内容的告警信息;其中,所述第二告警内容表征所述异常任务的第三调度时间发生变更而导致所述基线任务无法按时完成;所述第三调度时间为所述异常任务的预设开始执行时间;所述第二同类任务为与异常任务具有相同任务标识的历史任务或与异常任务具有相同任务标识的关键任务;所述任务标识用于标识具有相同处理规则的任务。
在本公开的一个实施例中,第二确定单元,包括:
第七确定模块,用于若确定基线任务无法按时完成,则确定第一集合的第二上下游依赖关系;所述第二上下游依赖关系表征第一集合中各任务之间的依赖顺序;
构建模块,用于根据所述第二上下游关系,构建有向无环图;其中,所述有向无环图中包括起始节点、至少一个基线节点、以及与所述第一集合中的任务一一对应的任务节点;所述有向无环图中不同任务节点之间的有向边表征任务节点之间依赖顺序;所述起始节点和任务节点之间的有向边表征所述任务节点不具备上游任务;所述任务节点和所述基线节点之间的有向边表征所述任务节点所对应的任务设置有目标基线;
第八确定模块,用于确定每一任务节点各自对应的第四调度时间和每一任务节点各自的运行耗时;所述第四调度时间为所述任务节点的预设开始执行时间;
第九确定模块,用于根据所述有向无环图、所述第四调度时间以及所述运行耗时,确定第一关键路径。
在本公开的一个实施例中,若所述任务节点对应的任务已执行完毕,则所述运行耗时为执行所述任务所消耗的时长;
或者,若所述任务节点对应的任务执行失败,则所述运行耗时为所述任务的历史平均运行耗时和所述任务节点的故障修复耗时二者之和;
或者,若所述任务节点对应的任务处于运行状态中,则所述运行耗时为第一值和所述任务的历史平均运行耗时二者之中的最大值;其中,所述第一值为当前运行时刻和所述任务的本次运行的开始时间二者之间的差值;
或者,若所述任务节点对应的任务处于未执行状态,则所述运行耗时为所述任务的历史平均运行耗时。
在本公开的一个实施例中,第九确定模块,具体用于:
按照所述依赖顺序正序地确定所述有向无环图中的任务节点的第一时间和所述基线节点的第二时间;其中,所述第一时间表征任务可以开始执行的最早时间;所述基线节点的第二时间为与所述基线节点连接的任务节点各自所对应的可最早完成的时间中的最大值;
按照所述依赖顺序逆序地确定所述有向无环图中任务节点的第三时间和所述基线节点的第四时间;其中,所述第四时间的取值被配置为所述第二时间的取值;所述第三时间表征任务可以开始执行的最晚时间;
若确定任务节点所对应的第一时间和所述第三时间的取值相同,则确定所述任务节点所对应的任务为所述第一关键路径中的第一关键任务;
并确定所述有向无环图中第一关键任务所连接的路径为所述第一关键路径。
在本公开的一个实施例中,第九确定模块,具体用于:
按照所述依赖顺序正序地获取所述有向无环图中的任务节点;
若所述任务节点与所述起始节点连接,则确定所述任务节点的第四调度时间为所述任务节点的第一时间;
若所述任务节点未与所述起始节点连接,则确定所述任务节点的前驱节点;其中,所述前驱节点为所述有向无环图中与所述任务节点连接,且依赖顺序位于所述任务节点之前的节点;确定前驱节点的第一时间和所述前驱节点的运行耗时二者之和为第二值;并确定第二值和所述任务节点的第四调度时间中的最大值为所述任务节点的第一时间。
在本公开的一个实施例中,第九确定模块,具体用于:
按照所述依赖顺序正序地获取所述有向无环图中的任务节点;
确定所述任务节点的后继节点;其中,所述后继节点为所述有向无环图中与所述任务节点连接,且依赖顺序位于所述任务节点之后的节点;
若所述后继节点并非基线节点,则确定后继节点的第三时间和所述任务节点的运行耗时二者的差值为第三值;并确定第三值中的最小值为所述任务节点的第三时间;
若所述后继节点为基线节点,则确定后继节点的第四时间和所述任务节点的运行耗时二者的差值为所述任务节点的第三时间。
在本公开的一个实施例中,所述装置还包括:
初始化单元,用于初始化生成所述目标时段对应的所述第一集合,以及与第一时段对应第二集合;其中,所述第一时段为所述当前时刻所属的时段;所述第二集合包括所述第一时段内需要执行的任务。
在本公开的一个实施例中,所述第二集合还记录有所述第二集合中的任务的状态信息;所述状态信息表征任务的执行状态;所述装置还包括:
第二生成单元,用于初始化生成第一队列;
第一添加单元,用于在所述第一时段内,若监听到已成功执行完毕的任务,则在所述第一队列中添加第一通知信息;所述第一通知信息用于指示设置所述已成功执行完毕的任务的状态信息为已成功执行状态;
第二获取单元,用于获取所述第一通知信息;
第二添加单元,用于若确定所述第二集合中不包括所述已成功执行完毕的任务,则在所述第二集合中添加所述已成功执行完毕的任务以及所述已成功执行完毕的任务的状态信息,并将所述状态信息设置为已成功执行状态。
在本公开的一个实施例中,所述装置还包括:
第三生成单元,用于初始化第二队列;
第三添加单元,用于在所述第一时段内,响应于接收到的新增指令,在所述第二队列中添加第二通知信息;所述新增指令用于指示新增第一任务以及第一任务的执行时间;所述第一任务具有第一任务标识;所述第二通知信息用于指示所述第一任务标识;
第四生成单元,用于获取所述第二通知信息,并生成第一任务信息;所述第一任务信息用于记录所述第一任务的任务执行信息;
第四确定单元,用于确定所述第一任务的执行时间所属的时段为第二时段;
第四添加单元,用于并在所述第二时段对应的第一任务集合中添加所述第一任务信息;所述第一任务集合用于记录需要在所述第二时段内执行的任务。
在本公开的一个实施例中,所述装置还包括:
第五添加单元,用于在所述第一时段内,响应于接收到的修改指令,则在所述第二队列中添加第三通知信息;所述修改指令用于指示修改第二任务的第二任务信息以及修改后的任务信息;所述第二任务为具有第二任务标识的任务;所述第三通知信息用于指示所述第二任务标识;
第三获取单元,用于获取所述第三通知信息;
第五确定单元,用于确定包括有所述第二任务信息的集合为第二任务集合;
第六确定单元,用于若确定所述第二任务集合中的第二任务处于未执行状态,则确定所述修改后的任务信息为所述第二任务集合中第二任务的任务信息。
在本公开的一个实施例中,所述装置还包括:
第六添加单元,用于在所述第一时段内,响应于接收到的删除指令,则在所述第二队列中添加第四通知信息;所述删除指令用于指示删除第三任务;所述第三任务为具有第三任务标识的任务;所述第四通知信息用于指示所述第三任务标识;
第七确定单元,用于根据所述第四通知信息,在所述第一集合和所述第二集合中,确定包括有所述第三任务的集合为第三任务集合;
删除单元,用于若确定所述第三任务集合中的第三任务处于未执行状态,则删除所述第三任务集合中所述第三任务以及所述第三任务的第三任务信息。
在本公开的一个实施例中,所述装置还包括:
第八确定单元,用于确定所述第一集合对应的第一监控频率和所述第二集合对应的第二监控频率;其中,所述第一监控频率表征单位时间内确定第一集合中各任务的完成情况的次数;所述第二监控频率表征单位时间内确定第二集合中各任务的完成情况的次数;所述第一监控频率小于所述第二监控频率。
在本公开的一个实施例中,所述装置还包括:
第九确定单元,用于在第一时段内,若确定第四任务无法按时完成,则确定第二基线对应的第二关键路径;所述第四任务为第二集合中设置有所述第二基线的任务;所述第二基线表征所述第四任务的目标完成时间;所述第二关键路径中包括至少一个第二关键任务;所述第二关键任务为所述第二集合中延期完成后会导致所述第四任务超期的任务;所述第一时段为所述当前时刻所属的时段;所述第二集合包括所述第一时段内需要执行的任务;
第十确定单元,用于确定处于未成功执行状态的第二关键任务为错误任务;所述错误任务为导致所述第四任务超期的任务。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图11对本公开示例性实施方式的计算设备进行说明。
图11显示的计算设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,计算设备1100以通用计算设备的形式表现。计算设备1100的组件可以包括但不限于:至少一个处理单元1101、至少一个存储单元1102,连接不同系统组件(包括处理单元1101和存储单元1102)的总线1103。其中,至少一个存储单元1102中存储有计算机执行指令;至少一个处理单元1101包括处理器,处理器执行该计算机执行指令,以实现上文描述的方法。
总线1103包括数据总线、控制总线和地址总线。
存储单元1102可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)11021和/或高速缓存存储器11022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)11023。
存储单元1102还可以包括具有一组(至少一个)程序模块11024的程序/实用工具11025,这样的程序模块11024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1100也可以与一个或多个外部设备1104(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口1105进行。并且,计算设备1100还可以通过网络适配器1106与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图9所示,网络适配器1106通过总线1103与计算设备1100的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了任务监控装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种任务监控方法,包括:
确定第一集合;所述第一集合由目标时段内需要执行的任务组成;所述目标时段为当前时刻所属时段的后一时段;
若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;所述基线任务为所述第一集合中设置有所述目标基线的任务;所述目标基线表征所述基线任务的目标完成时间;所述第一关键路径中包括至少一个第一关键任务;所述第一关键任务为所述第一集合中延期完成后会导致基线任务超期的任务;
获取第一基线的快照信息;所述快照信息用于记录历史任务和关联任务;所述关联任务为执行所述历史任务所依赖的任务;所述历史任务为所述当前时刻所属时段之前的历史时段内需要执行的,且设置有所述第一基线的任务;所述第一基线表征所述历史任务的目标完成时间,且所述第一基线对应的第一差值信息和所述目标基线对应的第二差值信息相同;所述第一差值信息为所述目标基线与所述目标时段的起始时间二者的差值;所述第二差值信息为所述第一基线与所述历史时段的起始时间二者的差值;
根据所述第一关键路径和所述快照信息,确定异常任务;所述异常任务为所述第一关键路径中导致基线任务无法按时完成的第一关键任务。
2.根据权利要求1所述的方法,所述第一关键路径具有第一上下游依赖关系;所述第一上下游依赖关系表征所述第一关键任务之间的执行顺序;
根据所述第一关键路径和所述快照信息,确定异常任务,包括:
按照所述执行顺序逆序地确定所述快照信息中是否存在第一同类任务;所述第一同类任务为与第一关键任务具有相同任务标识的历史任务或与第一关键任务具有相同任务标识的关键任务;所述任务标识用于标识具有相同处理规则的任务;
若所述快照信息中不包括所述第一同类任务,则确定所述第一关键任务为异常任务。
3.根据权利要求2所述的方法,所述方法还包括:
若所述快照信息中包括所述第一同类任务,则确定差值结果和第一调度时间;所述差值结果为所述目标基线和所述第一基线二者之间的差值;所述第一调度时间为所述第一关键任务的预设开始执行时间;
确定所述第一同类任务的第二调度时间;所述第二调度时间为所述第一同类任务的预设开始执行时间;
确定所述第二调度时间和所述差值结果二者的求和结果;
若确定所述求和结果和所述第一调度时间不同,且所述第一关键路径中不存在第二任务,则确定所述第一关键任务为异常任务;所述第二任务为所述第一关键路径中所述第一关键任务所依赖的上游任务中的至少一个。
4.根据权利要求3所述的方法,所述方法还包括:
若确定所述求和结果和所述第一调度时间不同,且所述第一关键路径中存在所述第二任务,则按照所述执行顺序逆序地遍历第二任务以确定所述快照信息中是否存在第一同类任务。
5.根据权利要求1所述的方法,所述方法还包括:
根据所述异常任务,生成告警信息;其中,所述告警信息用于指示所述基线任务无法按时完成的原因。
6.根据权利要求5所述的方法,根据所述异常任务,生成告警信息,包括:
若确定所述快照信息不包括第二同类任务,则生成携带有第一告警内容的告警信息;所述第一告警内容表征所述第一关键路径中存在新增的任务;所述第二同类任务为与异常任务具有相同任务标识的历史任务或与异常任务具有相同任务标识的关键任务;所述任务标识用于标识具有相同处理规则的任务。
7.根据权利要求6所述的方法,所述第一告警内容还用于表征所述新增的任务是否为新挂载在所述目标基线的基线任务。
8.一种任务监控装置,包括:
第一确定单元,用于确定第一集合;所述第一集合由目标时段内需要执行的任务组成;所述目标时段为当前时刻所属时段的后一时段;
第二确定单元,用于若确定基线任务无法按时完成,则确定目标基线对应的第一关键路径;所述基线任务为所述第一集合中设置有所述目标基线的任务;所述目标基线表征所述基线任务的目标完成时间;所述第一关键路径中包括至少一个第一关键任务;所述第一关键任务为所述第一集合中延期完成后会导致基线任务超期的任务;
第一获取单元,用于获取第一基线的快照信息;所述快照信息用于记录历史任务和关联任务;所述关联任务为执行所述历史任务所依赖的任务;所述历史任务为所述当前时刻所属时段之前的历史时段内需要执行的,且设置有所述第一基线的任务;所述第一基线表征所述历史任务的目标完成时间,且所述第一基线对应的第一差值信息和所述目标基线对应的第二差值信息相同;所述第一差值信息为所述目标基线与所述目标时段的起始时间二者的差值;所述第二差值信息为所述第一基线与所述历史时段的起始时间二者的差值;
第三确定单元,用于根据所述第一关键路径和所述快照信息,确定异常任务;所述异常任务为所述第一关键路径中导致基线任务无法按时完成的第一关键任务。
9.一种计算机可读存储介质,包括:所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7中任一项所述的方法。
10.一种计算设备,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述计算设备执行如权利要求1至7中任一项所述的方法。
CN202311406786.2A 2023-10-25 2023-10-25 任务监控方法、装置和计算设备 Pending CN118093303A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311406786.2A CN118093303A (zh) 2023-10-25 2023-10-25 任务监控方法、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311406786.2A CN118093303A (zh) 2023-10-25 2023-10-25 任务监控方法、装置和计算设备

Publications (1)

Publication Number Publication Date
CN118093303A true CN118093303A (zh) 2024-05-28

Family

ID=91141183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311406786.2A Pending CN118093303A (zh) 2023-10-25 2023-10-25 任务监控方法、装置和计算设备

Country Status (1)

Country Link
CN (1) CN118093303A (zh)

Similar Documents

Publication Publication Date Title
US11269718B1 (en) Root cause detection and corrective action diagnosis system
CN110516971B (zh) 异常检测的方法、装置、介质和计算设备
US8516499B2 (en) Assistance in performing action responsive to detected event
US10936386B2 (en) Method, device and computer program product for monitoring access request
US9424157B2 (en) Early detection of failing computers
US9563545B2 (en) Autonomous propagation of system updates
US20070168201A1 (en) Formula for automatic prioritization of the business impact based on a failure on a service in a loosely coupled application
US20140250334A1 (en) Detection apparatus and detection method
US9361184B2 (en) Selecting during a system shutdown procedure, a restart incident checkpoint of an incident analyzer in a distributed processing system
CN111324441A (zh) 运行环境的切换方法、装置、计算机设备和存储介质
CN108334427B (zh) 存储系统中的故障诊断方法及装置
CN110555150A (zh) 一种数据监控方法、装置、设备和存储介质
US10324778B2 (en) Utilizing an error prediction and avoidance component for a transaction processing system
CN111342986B (zh) 分布式节点管理方法及装置、分布式系统、存储介质
CN106549795B (zh) 用于监视多个分布式设备的系统
CN114064435A (zh) 数据库测试方法、装置、介质与电子设备
US11294804B2 (en) Test case failure with root cause isolation
US11150972B1 (en) Self-reporting and self-upgrading of enterprise systems
CN118093303A (zh) 任务监控方法、装置和计算设备
CN112463574A (zh) 软件测试方法、装置、系统、设备和存储介质
CN114546705A (zh) 操作响应方法、操作响应装置、电子设备以及存储介质
US12072697B2 (en) Automated device maintenance
JP2022167692A (ja) 管理装置および管理方法
CN112532747B (zh) 用于输出信息的方法、装置、设备以及存储介质
CN118041804B (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