CN110413398B - 任务调度方法、装置、计算机设备和存储介质 - Google Patents

任务调度方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110413398B
CN110413398B CN201910720283.XA CN201910720283A CN110413398B CN 110413398 B CN110413398 B CN 110413398B CN 201910720283 A CN201910720283 A CN 201910720283A CN 110413398 B CN110413398 B CN 110413398B
Authority
CN
China
Prior art keywords
target server
chaotic
target
task
sending
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
CN201910720283.XA
Other languages
English (en)
Other versions
CN110413398A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910720283.XA priority Critical patent/CN110413398B/zh
Publication of CN110413398A publication Critical patent/CN110413398A/zh
Application granted granted Critical
Publication of CN110413398B publication Critical patent/CN110413398B/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

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

任务调度方法、装置、计算机设备和存储介质
技术领域
本申请涉及混沌实验和故障注入技术领域,特别涉及一种任务调度方法、装置、计算机设备和存储介质。
背景技术
传统的混沌实验任务是通过将需要注入的故障通过脚本进行编排,然后手动发送至需要执行混沌实验作业的服务器中,再触发脚本来执行混沌实验作业。
然而,这种方式仅在单节点情况下基本满足要求,而混沌实验大多数场景是对大集群执行各种混沌实验任务。在这种情况下,用手动方式去下发任务显然效率十分低下。且由于网络或者其他原因,所有的任务也无法确保能下发到需要执行的服务器。且下发的任务在执行的过程中,任务执行失败,用户也无法实时感知到整个集群各目标服务器的状态。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种任务调度方法、装置、计算机设备和存储介质,以解决现有技术中混沌实验执行效率低的问题。
本申请实施例提供了一种任务调度方法,包括:接收任务执行请求,其中,任务执行请求中携带有目标混沌实验任务的任务信息;响应于任务执行请求,根据任务信息确定故障注入类型和多个目标服务器的标识信息;向多个目标服务器中的各目标服务器发送状态确认请求;在接收到各目标服务器响应于状态确认请求返回的确认信息的情况下,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,其中,确认信息用于指示目标服务器准备就绪;将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业。
在一个实施例中,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,包括:根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业;将各目标服务器的混沌实验作业存储至数据库中,并将数据库中的各混沌实验作业的状态设置为未发送;将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业,包括:从数据库中读取各目标服务器的混沌实验作业;将读取的各目标服务器的混沌实验作业发送至对应的目标服务器;在目标服务器成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态更新为发送成功;确定数据库中的所有混沌实验作业的状态是否均为发送成功;在确定数据库中的所有混沌实验作业的状态均为发送成功的情况下,向各目标服务器发送开始执行指令,其中,开始执行指令用于指示各目标服务器执行接收到的混沌实验作业。
在一个实施例中,在将读取的各目标服务器的混沌实验作业发送至对应的目标服务器之后,还包括:在目标服务器未成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态更新为发送失败;重复发送状态为发送失败的混沌实验作业至对应的目标服务器直至目标服务器成功接收混沌实验作业或者发送次数超过预设阈值;在发送次数超过预设阈值的情况下,返回发送次数超过预设阈值的混沌实验作业对应的目标服务器的标识信息,确定目标混沌实验任务执行失败。
在一个实施例中,在向各目标服务器发送开始执行指令之后,还包括:接收各目标服务器返回的作业执行状态;根据各目标服务器返回的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态。
在一个实施例中,在根据各目标服务器返回的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态之后,还包括:在数据库中各目标服务器的混沌实验作业的状态均为执行成功的情况下,确定目标混沌实验任务执行成功。
在一个实施例中,在向各目标服务器发送开始执行指令之后,还包括:接收各目标服务器返回的硬件指标参数;根据硬件指标参数确定各目标服务器在执行对应的混沌实验作业时对各目标服务器的硬件资源使用情况的影响。
在一个实施例中,在向各目标服务器发送开始执行指令之后,还包括:接收各目标服务器返回的软件指标参数;根据软件指标参数,确定各目标服务器在执行对应的混沌实验作业时对各目标服务器上运行的软件的影响。
本申请实施例还提供了一种任务调度装置,包括:接收模块,用于接收任务执行请求,其中,任务执行请求中携带有目标混沌实验任务的任务信息;确定模块,用于响应于任务执行请求,根据任务信息确定故障注入类型和多个目标服务器的标识信息;第一发送模块,用于向多个目标服务器中的各目标服务器发送状态确认请求;生成模块,用于在接收到各目标服务器响应于状态确认请求返回的确认信息的情况下,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,其中,确认信息用于指示目标服务器准备就绪;第二发送模块,用于将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的任务调度方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的任务调度方法的步骤。
在本申请实施例中,提供了一种任务调度方法,在接收到任务执行请求之后,根据任务执行请求中携带的目标混沌实验任务的任务信息确定故障注入类型和多个目标服务器的标识信息,向多个目标服务器中各目标服务器发送状态确认请求并在接收到各目标服务器响应于该请求返回的确认信息之后,根据各目标服务器的标识信息和故障注入类型生成各目标服务器的混沌实验作业,将各目标服务器的混沌实验作业发送至对应的目标服务器,以使得各目标服务器执行混沌实验作业,从而执行目标混沌实验任务。上述方案中,可以根据目标混沌实验任务的任务信息生成混沌实验作业,并将生成的混沌实验作业分别发送至各目标服务器,以使得各目标服务器执行混沌实验作业,无需手工下发任务,可以通过并行方式将任务快速下发至各目标服务器,实现自动化调度,可以提高混沌实验任务的执行效率。进一步地,在确认所有目标服务器均准备就绪的情况下,才生成混沌实验作业并进行发送,可以有效避免因为个别目标服务器异常而导致整个混沌实验任务失败。通过上述方案解决了现有的混沌实验任务的执行效率低下的技术问题,达到了有效提升混沌实验任务的执行效率的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的任务调度方法的应用场景的示意图;
图2示出了本申请一实施例中的任务调度方法的流程图;
图3示出了本申请一实施例中的任务调度方法的流程图;
图4示出了本申请一实施例中的任务调度装置的示意图;
图5示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
现有的混沌实验任务是通过手动发送至需要执行混沌实验作业的服务器中,再触发脚本来执行混沌实验作业,混沌实验任务执行效率较低。对此,发明人通过研究发现,可以通过调度服务器接收任务执行请求,并根据任务执行请求中携带的任务信息确定故障注入类型和多个目标服务器的标识信息,确定多个目标服务器是否均准备就绪,在确定多个目标服务器均准备就绪的情况下,生成各目标服务器的混沌实验作业,并将生成的混沌实验作业发送至各目标服务器以使得各目标服务器执行对应的混沌实验作业,从而完成混沌实验任务。
基于此,本申请实施例提供了一种任务调度方法。图1示出了本申请一实施例中任务调度方法的应用场景的示意图。如图1所示,示意性地示出了用户端、调度服务器和多个目标服务器(图1中示意性地示出了3个目标服务器:目标服务器1、目标服务器2和目标服务器3)。用户端向调度服务器发送任务执行请求。其中,任务执行请求中携带有目标混沌任务的任务信息。调度服务器响应于接收到的任务执行请求,根据任务信息确定目标服务器列表和故障注入类型。其中,目标服务器列表中记载有多个目标服务器的标识信息。故障注入类型可以包括但不限于以下之一:CPU满载、内存占满、磁盘IO忙碌、网络延时和丢包等。调度服务器向目标服务器列表中的目标服务器发送状态确认请求。各目标服务器响应于状态确认请求向调度服务器返回确认信息。在调度服务器接收到多个目标服务器中的每一个目标服务器返回的确认信息之后,确定所有目标服务器均准备就绪。在所有目标服务器均准备就绪的情况下,调度服务器根据各目标服务器的标识信息和故障注入类型生成各目标服务器的混沌实验作业。调度服务器将生成的混沌实验作业发送至对应的目标服务器,以使得各目标服务器执行混沌实验作业。
进一步地,各目标服务器在成功接收对应的混沌实验作业的情况下,向调度服务器返回确认成功接收的信息。在调度服务器确定多个目标服务器中的每一个服务器成功接收对应的混沌实验作业的情况下,向多个目标服务器发送开始执行指令,以使得多个目标服务器中各目标服务器执行混沌实验作业。
其中,上述调度服务器可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,具体的组成形成本申请不作限定。上述目标服务器可以是分布式系统中的一部分服务器或者全部服务器,可以是单一的服务器,也可以是服务器集群,或者是云服务器等都可以,具体的组成形成本申请不作限定。上述用户端可以是台式电脑、笔记本、手机终端、PDA等,只要是可以向用户或者业务人员进行内容展示和接收操作指令的设备都可以,对于用户端的呈现形成,本申请也不作限定。
图2示出了本申请一实施例中任务调度方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图2所示,本申请一种实施例提供的任务调度方法可以包括以下步骤:
步骤S201,接收任务执行请求,其中,任务执行请求中携带有目标混沌实验任务的任务信息。
具体地,调度服务器可以接收用户端发送的任务执行请求。其中,任务执行请求中携带有目标混沌实验任务的任务信息。任务信息中可以携带有目标混沌实验任务涉及的多个目标服务器的标识信息和故障注入类型。
步骤S202,响应于任务执行请求,根据任务信息确定故障注入类型和多个目标服务器的标识信息。
在调度服务器接收到任务执行请求之后,响应于任务执行请求,根据任务信息解析出多个目标服务器的标识信息和故障注入类型。其中,服务器的标识信息可以是服务器的IP地址等。故障注入类型可以包括但不限于以下之一:CPU满载、内存占满、磁盘IO忙碌、网络延时和丢包等。
步骤S203,向多个目标服务器中的各目标服务器发送状态确认请求。
步骤S204,在接收到各目标服务器响应于状态确认请求返回的确认信息的情况下,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,其中,确认信息用于指示目标服务器准备就绪。
在获取到多个目标服务器的标识信息之后,可以向各目标服务器发送状态确认请求,以确认各目标服务器是否准备就绪。各目标服务器接收到状态确认请求之后,确定自身是否准备就绪,若是,则向调度服务器返回确认信息。其中,确认信息用于指示目标服务器准备就绪。在调度服务器接收到多个目标服务器中的每一个目标服务器响应于状态确认请求返回的确认信息的情况下,确定多个目标服务器均准备就绪。在此情况下,调度服务器根据各目标服务器的标识信息和故障注入类型生成各目标服务器的混沌实验作业。
步骤S205,将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业。
在生成各目标服务器的混沌实验作业之后,将各目标服务器的混沌实验作业发送至对应的目标服务器,以使得目标服务器执行接收到的混沌实验作业。混沌实验作业与目标服务器一一对应。例如,一个混沌实验作业具体可以指向某一个IP地址的目标服务器发起某一个具体的故障注入。
上述方案中,可以根据目标混沌实验任务的任务信息生成混沌实验作业,并将生成的混沌实验作业分别发送至各目标服务器,以使得各目标服务器执行混沌实验作业,无需手工下发任务,可以通过并行方式将任务快速下发至各目标服务器,实现自动化调度,可以提高混沌实验任务的执行效率。进一步地,在确认所有目标服务器均准备就绪的情况下,才生成混沌实验作业并进行发送,可以避免因为个别目标服务器异常而导致整个混沌实验任务失败。
进一步地,在本申请一些实施例中,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,可以包括:根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业;将各目标服务器的混沌实验作业存储至数据库中,并将数据库中的各混沌实验作业的状态设置为未发送。将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业,可以包括:从数据库中读取各目标服务器的混沌实验作业;将读取的各目标服务器的混沌实验作业发送至对应的目标服务器;在目标服务器成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态更新为发送成功;确定数据库中的所有混沌实验作业的状态是否均为发送成功;在确定数据库中的所有混沌实验作业的状态均为发送成功的情况下,向各目标服务器发送开始执行指令,其中,开始执行指令用于指示各目标服务器执行接收到的混沌实验作业。
具体地,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,将生成的各混沌实验作业存储至数据库中。将数据库中的各混沌实验作业的状态设置为未发送。之后,从数据库读取各目标服务器的混沌实验作业,并将读取的各混沌实验作业发送至对应的目标服务器。在目标服务器成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态由未发送更新为发送成功。调度服务器确定数据库中的各混沌实验作业的状态是否均为发送成功。在确定各混沌实验作业的状态均为发送成功的情况下,向各目标服务器发送开始执行指令。其中,开始执行指令用于指示各目标服务器执行接收到的混沌实验作业。
上述实施例的方法中,调度服务器在确定各目标服务器均成功接收对应的混沌实验作业的情况下,才向各目标服务器发送开始执行指令,以使得各目标服务器开始执行接收到的混沌实验作业。上述方法通过将所有混沌实验作业及其状态都保存至数据库中,可以确保所有的作业都能正常的被触发和关闭,进一步地,在所述作业均发送成功的情况下,才向各目标服务器发送开始执行指令,可以避免由于个别混沌实验作业发送失败而造成目标混沌实验任务失败。
进一步地,在本申请一些实施例中,在将读取的各目标服务器的混沌实验作业发送至对应的目标服务器之后,还可以包括:在目标服务器未成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态更新为发送失败;重复发送状态为发送失败的混沌实验作业至对应的目标服务器直至目标服务器成功接收混沌实验作业或者发送次数超过预设阈值;在发送次数超过预设阈值的情况下,返回发送次数超过预设阈值的混沌实验作业对应的目标服务器的标识信息,确定目标混沌实验任务执行失败。
具体地,在目标服务器未成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态由未发送更新为发送失败。从数据库中读取状态为未发送的混沌实验作业。重复发送读取的这些状态为未发送的混沌实验作业并记录各个作业的发送次数,直至目标服务器成功接收混沌实验作业或者发送次数超过预设阈值。在发送次数超过预设阈值的情况下,说明存在无法成功接收混沌实验作业的目标服务器。在这种情况下,向用户端返回发送次数超过预设阈值的混沌实验作业对应的目标服务器的标识信息,即告知用户端哪些目标服务器没有成功接收混沌实验作业,结束流程并确定目标混沌实验任务执行失败。通过上述方式,在存在目标服务器无法接收混沌实验作业的情况下,结束流程,可以节约资源,避免不必要的资源浪费。
在本申请一些实施例中,在向各目标服务器发送开始执行指令之后,还可以包括:接收各目标服务器返回的作业执行状态;根据各目标服务器返回的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态。
具体地,在目标服务器接收到开始执行指令之后,开始执行接收到的混沌实验作业,并向调度服务器返回作业执行状态。其中,作业执行状态包括执行成功或执行失败。调度服务器接收到各混沌实验作业的作业执行状态之后,根据接收到的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态。例如,可以将各目标服务器的混沌实验作业的执行状态由未执行更新为执行成功或执行失败。例如,还可以将各混沌实验作业的状态由发送成功更新为执行成功或执行失败。调度服务器将所有混沌实验作业及其状态都保存至数据库中,可以确保所有的作业都能正常地被触发和关闭。通过上述方式,可以自动化监测所有在执行混沌实验作业的目标服务器,从而实时了解到这些混沌实验作业的执行状态。
在本申请一些实施例中,在根据各目标服务器返回的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态之后,还可以包括:在数据库中各目标服务器的混沌实验作业的状态均为执行成功的情况下,确定目标混沌实验任务执行成功。
具体地,调度服务器可以根据各混沌实验作业的状态确定目标混沌实验任务的执行状态。在数据库中各目标服务器的混沌实验作业的状态均为执行成功的情况下,可以确定目标混沌实验任务执行成功。
在本申请一些实施例中,在向各目标服务器发送开始执行指令之后,还可以包括:接收各目标服务器返回的硬件指标参数;根据硬件指标参数确定各目标服务器在执行对应的混沌实验作业时对各目标服务器的硬件资源使用情况的影响。
通过获取各目标服务器的硬件指标参数,可以确认在执行混沌实验过程中,是否对目标服务器或者整个分布式系统产生影响以及产生何种影响。其中,硬件指标参数可以包括但不限于以下至少之一:CPU使用率、内存使用率、磁盘IO性能参数等。比如,对某一些服务器执行CPU满载的混沌实验作业,那正常情况应该是可以看到被执行混沌实验作业的目标服务器的CPU占用增加。可以根据硬件指标参数确定混沌实验作业对硬件资源使用情况的影响。进一步地,还可以根据硬件指标参数,确定目标服务器的混沌实验作业是否真的成功执行了。通过上述方式,可以实时获取目标服务器的硬件指标参数,并确定混沌实验作业对目标服务器的硬件资源使用情况的影响。
在本申请一些实施例中,在向各目标服务器发送开始执行指令之后,还可以包括:接收各目标服务器返回的软件指标参数;根据软件指标参数,确定各目标服务器在执行对应的混沌实验作业时对各目标服务器上运行的软件的影响。
通过获取各目标服务器的软件指标参数,可以确认在执行混沌实验过程中,是否对目标服务器或者整个分布式系统产生影响以及产生何种影响。在执行混沌实验作业时,目标服务器对应的软件运行应该是会受到影响的,比如软件运行会比正常情况下缓慢一些,或者可能在并发较大的情况下,会有一些软件运行失败的场景。通过上述方式,可以实时获取目标服务器的软件指标参数,并确定混沌实验作业对目标服务器上运行的软件的影响。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
请参考图3,示出了本申请一实施例中的任务调度方法的流程图。如图3所示,任务调度方法包括以下步骤:
步骤1,接收任务执行请求,其中,所述任务执行请求中携带有目标混沌实验任务的任务信息;
步骤2,响应于任务执行请求,根据任务信息确定目标服务器列表和故障注入类型,其中,目标服务器列表中携带有多个目标服务器的标识信息;
步骤3,向所述服务器列表中的多个目标服务器中各目标服务器发送状态确认请求;
步骤4,确定是否接收到多个目标服务器中每一个目标服务器响应于状态确定请求返回的确认信息,若是,则执行步骤5,否则,每隔预设时间确定一次是否接收到多个目标服务器中每一个目标服务器响应于状态确定请求返回的确认信息;
步骤5,根据所述多个目标服务器中各目标服务器的标识信息和故障注入类型生成各目标服务器的混沌实验作业,并将生成的各目标服务器的混沌实验作业存入数据库中,并将所述各混沌实验作业的状态设置为未发送;
步骤6,从数据库中读取状态为未发送的混沌实验作业,并将读取的混沌实验作业发送至对应的目标服务器,在目标服务器成功接收混沌实验作业的情况下,将数据库中该混沌实验作业的状态设置为发送成功,在目标服务器未成功接收混沌实验作业的情况下,将数据库中该混沌实验作业的状态设置为发送失败;
步骤7,确定数据库中的每一个混沌实验作业的状态是否均为发送成功,若是,则执行步骤10,否则,执行步骤8;
步骤8,从数据库中读取状态为发送失败的混沌实验作业,并重复发送状态为发送失败的混沌实验作业直至目标服务器成功接收混沌实验作业或者发送次数超过预设次数;
步骤9,确定是否存在发送次数超过预设次数的混沌实验作业,若是,则返回发送次数超过预设次数的混沌实验作业对应的目标服务器的标识信息(即,告知用户端哪些目标服务器没有成功接收混沌实验作业),并确定目标混沌实验任务执行失败并结束流程,否则,执行步骤10;
步骤10,向多个服务器中各目标服务器发送开始执行指令,其中,开始执行指令用于指示各目标服务器执行接收到的混沌实验作业;
步骤11,接收各目标服务器在执行接收到的混沌实验作业期间各目标服务器的硬件指标参数和软件指标参数,并将硬件指标参数和软件指标参数存储至数据库中;
步骤12,接收各目标服务器返回的作业执行状态,并根据接收到的作业执行状态更新数据库中各混沌实验作业的状态;
步骤13,根据数据库中各混沌实验作业的状态确定目标混沌任务是否执行成功;根据硬件指标参数确定各目标服务器在执行对应的混沌实验作业时对各目标服务器的硬件资源使用情况的影响;根据软件指标参数确定各目标服务器在执行对应的混沌实验作业时对各目标服务器上运行的软件的影响。
上述实施例中的任务调度方法,可以对目标混沌实验任务进行自动化分析,生成多个混沌实验作业,无需人工干预,可以有效提高任务执行效率;在确保所有目标服务器就绪才会生成混沌实验作业,可以有效避免由于个别目标服务器异常而导致整个混沌实验任务失败;通过将所有混沌实验作业及其状态都保存至数据库中,确保所有的作业都能正常的被触发和关闭,在所述作业均发送成功的情况下,才向各目标服务器发送开始执行指令,可以避免由于个别混沌实验作业发送失败而造成目标混沌实验任务失败;在个别作业无法成功发送的情况下结束流程,即,在个别作业无法成功发送的情况下不执行任何发送成功的作业,可以避免不必要的资源浪费,并告知用户端哪些目标服务器没有成功接收混沌实验作业;通过自动化监测所有在执行混沌实验作业的目标服务器,可以实时了解到这些目标服务器的运行状态以及混沌实验作业的运行状态,确定各混沌实验作业对各目标服务器的硬件和软件的影响。
基于同一发明构思,本申请实施例中还提供了一种任务调度装置,如下面的实施例所述。由于任务调度装置解决问题的原理与任务调度方法相似,因此任务调度装置的实施可以参见任务调度方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图4是本申请实施例的任务调度装置的一种结构框图,如图4所示,包括:接收模块401、确定模块402、第一发送模块403、生成模块404和第二发送模块405,下面对该结构进行说明。
接收模块401用于接收任务执行请求,其中,任务执行请求中携带有目标混沌实验任务的任务信息。
确定模块402用于响应于任务执行请求,根据任务信息确定故障注入类型和多个目标服务器的标识信息。
第一发送模块403用于向多个目标服务器中的各目标服务器发送状态确认请求。
生成模块404用于在接收到各目标服务器响应于状态确认请求返回的确认信息的情况下,根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业,其中,确认信息用于指示目标服务器准备就绪。
第二发送模块405用于将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业。
在本申请一些实施例中,生成模块可以具体用于:根据故障注入类型和各目标服务器的标识信息生成各目标服务器的混沌实验作业;将各目标服务器的混沌实验作业存储至数据库中,并将数据库中的各混沌实验作业的状态设置为未发送。将各目标服务器的混沌实验作业发送至对应的目标服务器,以使目标服务器执行混沌实验作业,可以包括:从数据库中读取各目标服务器的混沌实验作业;将读取的各目标服务器的混沌实验作业发送至对应的目标服务器;在目标服务器成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态更新为发送成功;确定数据库中的所有混沌实验作业的状态是否均为发送成功;在确定数据库中的所有混沌实验作业的状态均为发送成功的情况下,向各目标服务器发送开始执行指令,其中,开始执行指令用于指示各目标服务器执行接收到的混沌实验作业。
在本申请一些实施例中,在将读取的各目标服务器的混沌实验作业发送至对应的目标服务器之后,还可以包括:在目标服务器未成功接收混沌实验作业的情况下,将数据库中对应的混沌实验作业的状态更新为发送失败;重复发送状态为发送失败的混沌实验作业至对应的目标服务器直至目标服务器成功接收混沌实验作业或者发送次数超过预设阈值;在发送次数超过预设阈值的情况下,返回发送次数超过预设阈值的混沌实验作业对应的目标服务器的标识信息,确定目标混沌实验任务执行失败。
在本申请一些实施例中,在向各目标服务器发送开始执行指令之后,还可以包括:接收各目标服务器返回的作业执行状态;根据各目标服务器返回的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态。
在本申请一些实施例中,在根据各目标服务器返回的作业执行状态更新数据库中各目标服务器的混沌实验作业的状态之后,还可以包括:在数据库中各目标服务器的混沌实验作业的状态均为执行成功的情况下,确定目标混沌实验任务执行成功。
在本申请一些实施例中,在向各目标服务器发送开始执行指令之后,还可以包括:接收各目标服务器返回的硬件指标参数;根据硬件指标参数确定各目标服务器在执行对应的混沌实验作业时对各目标服务器的硬件资源使用情况的影响。
在本申请一些实施例中,在向各目标服务器发送开始执行指令之后,还可以包括:接收各目标服务器返回的软件指标参数;根据软件指标参数,确定各目标服务器在执行对应的混沌实验作业时对各目标服务器上运行的软件影响。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:可以根据目标混沌实验任务的任务信息生成混沌实验作业,并将生成的混沌实验作业分别发送至各目标服务器,以使得各目标服务器执行混沌实验作业,无需手工下发任务,可以通过并行方式将任务快速下发至各目标服务器,实现自动化调度,可以提高混沌实验任务的执行效率。进一步地,在确认所有目标服务器均准备就绪的情况下,才生成混沌实验作业并进行发送,可以避免因为个别目标服务器异常而导致整个混沌实验任务失败。
本申请实施方式还提供了一种计算机设备,具体可以参阅图5所示的基于本申请实施例提供的任务调度方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备51、处理器52、存储器53。其中,所述存储器53用于存储处理器可执行指令。所述处理器52执行所述指令时实现上述任意实施例中所述的任务调度方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于任务调度方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述任务调度方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (9)

1.一种任务调度方法,其特征在于,应用于调度服务器,包括:
接收任务执行请求,其中,所述任务执行请求中携带有目标混沌实验任务的任务信息;所述任务信息中携带有目标混沌实验任务涉及的多个目标服务器的标识信息和故障注入类型;
响应于所述任务执行请求,根据所述任务信息确定所述多个目标服务器中各目标服务器的故障注入类型和所述多个目标服务器中各目标服务器的标识信息;
向所述多个目标服务器中的各目标服务器发送状态确认请求;
在接收到所述各目标服务器响应于所述状态确认请求返回的确认信息的情况下,根据所述各目标服务器的故障注入类型和所述各目标服务器的标识信息生成各目标服务器的混沌实验作业,其中,所述确认信息用于指示所述目标服务器准备就绪;
将所述各目标服务器的混沌实验作业发送至对应的目标服务器,以使所述目标服务器执行所述混沌实验作业;
其中,根据所述故障注入类型和所述各目标服务器的标识信息生成各目标服务器的混沌实验作业,包括:
根据所述故障注入类型和所述各目标服务器的标识信息生成各目标服务器的混沌实验作业;
将所述各目标服务器的混沌实验作业存储至数据库中,并将所述数据库中的各混沌实验作业的状态设置为未发送;
将所述各目标服务器的混沌实验作业发送至对应的目标服务器,以使所述目标服务器执行所述混沌实验作业,包括:
从所述数据库中读取所述各目标服务器的混沌实验作业;
将读取的所述各目标服务器的混沌实验作业发送至对应的目标服务器;
在目标服务器成功接收所述混沌实验作业的情况下,将所述数据库中对应的混沌实验作业的状态更新为发送成功;
确定所述数据库中的所有混沌实验作业的状态是否均为发送成功;
在确定所述数据库中的所有混沌实验作业的状态均为发送成功的情况下,向所述各目标服务器发送开始执行指令,其中,所述开始执行指令用于指示各目标服务器执行接收到的混沌实验作业。
2.根据权利要求1所述的方法,其特征在于,在将读取的所述各目标服务器的混沌实验作业发送至对应的目标服务器之后,还包括:
在目标服务器未成功接收所述混沌实验作业的情况下,将所述数据库中对应的混沌实验作业的状态更新为发送失败;
重复发送状态为发送失败的混沌实验作业至对应的目标服务器直至所述目标服务器成功接收所述混沌实验作业或者发送次数超过预设阈值;
在发送次数超过预设阈值的情况下,返回发送次数超过预设阈值的混沌实验作业对应的目标服务器的标识信息,确定所述目标混沌实验任务执行失败。
3.根据权利要求1所述的方法,其特征在于,在向所述各目标服务器发送开始执行指令之后,还包括:
接收所述各目标服务器返回的作业执行状态;
根据所述各目标服务器返回的作业执行状态更新所述数据库中各目标服务器的混沌实验作业的状态。
4.根据权利要求3所述的方法,其特征在于,在根据所述各目标服务器返回的作业执行状态更新所述数据库中各目标服务器的混沌实验作业的状态之后,还包括:
在所述数据库中各目标服务器的混沌实验作业的状态均为执行成功的情况下,确定所述目标混沌实验任务执行成功。
5.根据权利要求1所述的方法,其特征在于,在向所述各目标服务器发送开始执行指令之后,还包括:
接收所述各目标服务器返回的硬件指标参数;
根据所述硬件指标参数确定所述各目标服务器在执行对应的混沌实验作业时对所述各目标服务器的硬件资源使用情况的影响。
6.根据权利要求1所述的方法,其特征在于,在向所述各目标服务器发送开始执行指令之后,还包括:
接收所述各目标服务器返回的软件指标参数;
根据所述软件指标参数,确定所述各目标服务器在执行对应的混沌实验作业时对所述各目标服务器上运行的软件的影响。
7.一种任务调度装置,其特征在于,应用于调度服务器,包括:
接收模块,用于接收任务执行请求,其中,所述任务执行请求中携带有目标混沌实验任务的任务信息;所述任务信息中携带有目标混沌实验任务涉及的多个目标服务器的标识信息和故障注入类型;
确定模块,用于响应于所述任务执行请求,根据所述任务信息确定所述多个目标服务器中各目标服务器的故障注入类型和所述多个目标服务器中各目标服务器的标识信息;
第一发送模块,用于向所述多个目标服务器中的各目标服务器发送状态确认请求;
生成模块,用于在接收到所述各目标服务器响应于所述状态确认请求返回的确认信息的情况下,根据所述各目标服务器的故障注入类型和所述各目标服务器的标识信息生成各目标服务器的混沌实验作业,其中,所述确认信息用于指示所述目标服务器准备就绪;
第二发送模块,用于将所述各目标服务器的混沌实验作业发送至对应的目标服务器,以使所述目标服务器执行所述混沌实验作业;
其中,根据所述故障注入类型和所述各目标服务器的标识信息生成各目标服务器的混沌实验作业,包括:
根据所述故障注入类型和所述各目标服务器的标识信息生成各目标服务器的混沌实验作业;
将所述各目标服务器的混沌实验作业存储至数据库中,并将所述数据库中的各混沌实验作业的状态设置为未发送;
将所述各目标服务器的混沌实验作业发送至对应的目标服务器,以使所述目标服务器执行所述混沌实验作业,包括:
从所述数据库中读取所述各目标服务器的混沌实验作业;
将读取的所述各目标服务器的混沌实验作业发送至对应的目标服务器;
在目标服务器成功接收所述混沌实验作业的情况下,将所述数据库中对应的混沌实验作业的状态更新为发送成功;
确定所述数据库中的所有混沌实验作业的状态是否均为发送成功;
在确定所述数据库中的所有混沌实验作业的状态均为发送成功的情况下,向所述各目标服务器发送开始执行指令,其中,所述开始执行指令用于指示各目标服务器执行接收到的混沌实验作业。
8.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至6中任一项所述方法的步骤。
CN201910720283.XA 2019-08-06 2019-08-06 任务调度方法、装置、计算机设备和存储介质 Active CN110413398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910720283.XA CN110413398B (zh) 2019-08-06 2019-08-06 任务调度方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910720283.XA CN110413398B (zh) 2019-08-06 2019-08-06 任务调度方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110413398A CN110413398A (zh) 2019-11-05
CN110413398B true CN110413398B (zh) 2022-08-19

Family

ID=68366012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910720283.XA Active CN110413398B (zh) 2019-08-06 2019-08-06 任务调度方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110413398B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026572A (zh) * 2019-11-15 2020-04-17 北京金山云网络技术有限公司 分布式系统的故障处理方法、装置及电子设备
CN115081410A (zh) * 2022-07-19 2022-09-20 中电金信软件有限公司 一种实验报告的自动生成方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594618A (zh) * 2012-01-31 2012-07-18 浪潮(北京)电子信息产业有限公司 实现存储局域网络存储设备测试的方法及装置
US20140337674A1 (en) * 2013-05-10 2014-11-13 Nec Laboratories America, Inc. Network Testing
CN103678129A (zh) * 2013-12-14 2014-03-26 中国航空工业集团公司第六三一研究所 一种基于时间触发的机电系统软件故障注入方法
CN105550080A (zh) * 2015-11-26 2016-05-04 广州华多网络科技有限公司 一种基于Linux进行服务器程序故障注入方法、装置及系统
CN106598860B (zh) * 2016-12-16 2019-02-05 郑州云海信息技术有限公司 一种多种故障注入测试方法
CN109947535A (zh) * 2019-03-22 2019-06-28 哈尔滨工业大学 面向虚拟机的故障注入套件

Also Published As

Publication number Publication date
CN110413398A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
CN108376118B (zh) 服务发布系统、方法、设备及存储介质
CN109862101B (zh) 跨平台应用启动方法、装置、计算机设备和存储介质
CN106302632B (zh) 一种基础镜像的下载方法以及管理节点
CN110457197B (zh) 服务测试方法、装置、计算机设备和存储介质
CN111782360A (zh) 分布式任务调度方法及装置
US10417062B2 (en) Method and apparatus of unloading out of memory processing flow to user space
CN109361525B (zh) 重启分布式部署多服务的方法、装置、控制终端及介质
CN109766172B (zh) 一种异步任务调度方法以及装置
CN110737534A (zh) 任务的处理方法、装置和服务器
CN110413398B (zh) 任务调度方法、装置、计算机设备和存储介质
US11734077B2 (en) Evaluation device, evaluation method and evaluation program
CN109582335A (zh) 一种无中断存储集群节点在线升级方法、装置及设备
CN111541762B (zh) 数据处理的方法、管理服务器、设备及存储介质
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
WO2016116013A1 (zh) 软件升级方法和系统
CN113672284B (zh) 一种指令执行方法、系统、电子设备以及存储介质
CN110650164A (zh) 文件的上传方法、装置、终端以及计算机存储介质
CN111282263A (zh) 事件消息的处理方法、装置、电子设备及可读存储介质
CN108241616B (zh) 消息推送方法和装置
CN109905459B (zh) 一种数据传输方法及装置
CN114138371B (zh) 配置动态加载方法、装置及计算机设备、存储介质
CN112748883B (zh) 一种io请求流水线处理设备、方法、系统及存储介质
CN114518833B (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN114816866A (zh) 故障处理方法、装置、电子设备和存储介质
CN109510774B (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