CN110209488B - 任务执行方法、装置、设备、***及存储介质 - Google Patents
任务执行方法、装置、设备、***及存储介质 Download PDFInfo
- Publication number
- CN110209488B CN110209488B CN201910498333.4A CN201910498333A CN110209488B CN 110209488 B CN110209488 B CN 110209488B CN 201910498333 A CN201910498333 A CN 201910498333A CN 110209488 B CN110209488 B CN 110209488B
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- control device
- tasks
- processed
- 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
Links
Images
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本公开关于一种任务执行方法、装置、设备、***及存储介质,涉及计算机技术领域,该方法包括:获取多个待处理的任务;获取所述多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行所述第一任务;当接收到任一个任务执行设备的任务请求时,从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,将所述第二任务发送至所述任一个任务执行设备。本公开通过支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种任务执行方法、装置、设备、***及存储介质。
背景技术
随着计算机技术的发展,利用任务执行设备来批量执行任务以提高任务执行效率已经成为趋势。目前,相关技术中,任务执行方法通常是对现有的Ansible或SaltStack等开源的工具进行简单的封装,用户可以提交多个任务,由控制设备远程控制任务执行设备执行任务,由于所依赖的工具仅支持一种执行模式,执行模式单一,通用性低。
发明内容
本公开提供一种任务执行方法、装置、设备、***及存储介质,以至少解决相关技术中执行模式单一和通用性低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种任务执行方法,应用于控制设备,所述方法包括:
获取多个待处理的任务;
获取所述多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行所述第一任务,所述第一任务的执行模式为由控制设备控制所述任务执行设备执行任务的模式;
当接收到任一个任务执行设备的任务请求时,从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,将所述第二任务发送至所述任一个任务执行设备,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式。
在一种可能实现方式中,所述任务执行方法由控制设备集群执行,所述控制设备集群包括一个主控制设备和至少一个从控制设备,所述主控制设备用于分配第一任务。
在一种可能实现方式中,所述获取所述多个待处理的任务中的第一任务之前,所述方法还包括:
当所述当前控制设备为主控制设备时,从所述多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述当前控制设备所在的控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果;向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果;
所述获取所述多个待处理的任务中的第一任务,包括:
基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,所述获取所述多个待处理的任务中的第一任务之前,所述方法还包括:
当所述当前控制设备为从控制设备时,接收所述主控制设备发送的任务分配结果。
所述获取所述多个待处理的任务中的第一任务,包括:
基于所述从控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述从控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,所述获取多个待处理的任务,包括:轮询任务队列,得到多个待处理的任务;
所述获取所述多个待处理的任务中的第一任务,包括:从所述任务队列中获取第一任务;
所述从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,包括:从所述任务队列中获取目标任务执行设备为所述任一个任务执行设备的第二任务。
在一种可能实现方式中,所述多个待处理的任务由多个设备将目的地址存储的多个任务集合中的多个待处理的任务添加至所述任务队列得到。
在一种可能实现方式中,所述控制当前控制设备所关联的任务执行设备执行所述第一任务,包括:
基于安全壳SSH命令,与所述当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行所述第一任务的步骤。
在一种可能实现方式中,所述任务请求由所述任一个任务执行设备周期性发送,所述任务请求携带有所述任一个任务执行设备的标识信息;
所述从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,包括:
将所述任一个任务执行设备的标识信息与所述多个待处理的任务中目标任务执行设备的标识信息进行匹配;
获取匹配的标识信息对应的第二任务。
在一种可能实现方式中,所述方法还包括:
接收所述任一个任务执行设备的任务完成情况;
基于所述任务完成情况,对所述多个待处理的任务的状态进行更新。
在一种可能实现方式中,所述接收所述任一个任务执行设备的任务完成情况之后,所述方法还包括:
当根据所述任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,发送告警信息。
在一种可能实现方式中,所述获取多个待处理的任务之后,所述方法还包括:
当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且所述待处理的任务还未分配或未被获取时,将所述待处理的任务的状态置为下发超时状态。
在一种可能实现方式中,所述多个待处理的任务的格式包括多种格式。
根据本公开实施例的第二方面,提供一种任务执行方法,应用于任务执行设备,所述方法包括:
基于所关联的控制设备的控制指令,执行第一任务,所述第一任务的执行模式为由所述控制设备控制所述任务执行设备执行任务的模式;
向所述控制设备发送任务请求,所述任务请求用于请求当前任务执行设备所需执行的第二任务,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式;
接收目标任务执行设备为当前任务执行设备的第二任务;
基于所述第二任务的内容,执行所述第二任务。
在一种可能实现方式中,所述方法还包括:
当***时间距离任一个待处理的任务的生成时间的时长为第三目标时长,且所述待处理的任务还未被执行或还未执行完成时,将所述待处理的任务的状态置为执行超时状态。
在一种可能实现方式中,所述执行第一任务的过程或所述执行所述第二任务的过程,包括:
根据所述第一任务或所述第二任务的格式,按照所述格式对应的执行方式执行所述第一任务或第二任务。
在一种可能实现方式中,所述向所述控制设备发送任务请求,包括:
周期性向所述控制设备发送任务请求,所述任务请求携带有所述当前任务执行设备的标识信息。
在一种可能实现方式中,所述方法还包括:
向所述控制设备发送任务完成情况,所述任务完成情况中每个任务的状态为成功状态或失败状态,所述任务完成情况包括状态为所述失败状态的任务的失败原因。
根据本公开实施例的第三方面,提供一种任务执行装置,包括:
获取单元,被配置为执行获取多个待处理的任务;
执行单元,被配置为执行获取所述多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行所述第一任务,所述第一任务的执行模式为由控制设备控制所述任务执行设备执行任务的模式;
所述执行单元,还被配置为执行当接收到任一个任务执行设备的任务请求时,从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,将所述第二任务发送至所述任一个任务执行设备,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式。
在一种可能实现方式中,所述任务执行装置应用于控制设备集群,所述控制设备集群包括一个主控制设备和至少一个从控制设备,所述主控制设备用于分配第一任务。
在一种可能实现方式中,所述任务执行装置还包括:
分配单元,被配置为执行当所述当前控制设备为主控制设备时,从所述多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述当前控制设备所在的控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果;向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果;
所述执行单元被配置为执行基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,所述任务执行装置还包括:
第一接收单元,被配置为执行当所述当前控制设备为从控制设备时,接收所述主控制设备发送的任务分配结果。
所述执行单元被配置为执行基于所述从控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述从控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,所述获取单元被配置为执行轮询任务队列,得到多个待处理的任务;
所述执行单元被配置为执行从所述任务队列中获取第一任务;
所述执行单元被配置为执行从所述任务队列中获取目标任务执行设备为所述任一个任务执行设备的第二任务。
在一种可能实现方式中,所述多个待处理的任务由多个设备将目的地址存储的多个任务集合中的多个待处理的任务添加至所述任务队列得到。
在一种可能实现方式中,所述执行单元被配置为执行基于安全壳SSH命令,与所述当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行所述第一任务的步骤。
在一种可能实现方式中,所述任务请求由所述任一个任务执行设备周期性发送,所述任务请求携带有所述任一个任务执行设备的标识信息;
所述执行单元被配置为执行:
将所述任一个任务执行设备的标识信息与所述多个待处理的任务中目标任务执行设备的标识信息进行匹配;
获取匹配的标识信息对应的第二任务。
在一种可能实现方式中,所述任务执行装置还包括:
第二接收单元,被配置为执行接收所述任一个任务执行设备的任务完成情况;
更新单元,被配置为执行基于所述任务完成情况,对所述多个待处理的任务的状态进行更新。
在一种可能实现方式中,所述任务执行装置还包括:
发送单元,被配置为执行当根据所述任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,发送告警信息。
在一种可能实现方式中,所述任务执行装置还包括:
设置单元,被配置为执行当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且所述待处理的任务还未分配或未被获取时,将所述待处理的任务的状态置为下发超时状态。
在一种可能实现方式中,所述多个待处理的任务的格式包括多种格式。
根据本公开实施例的第四方面,提供一种任务执行装置,包括:
执行单元,被配置为执行基于所关联的控制设备的控制指令,执行第一任务,所述第一任务的执行模式为由所述控制设备控制所述任务执行设备执行任务的模式;
发送单元,被配置为执行向所述控制设备发送任务请求,所述任务请求用于请求当前任务执行设备所需执行的第二任务,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式;
接收单元,被配置为执行接收目标任务执行设备为当前任务执行设备的第二任务;
所述执行单元,还被配置为执行基于所述第二任务的内容,执行所述第二任务。
在一种可能实现方式中,所述任务执行装置还包括:
设置单元,被配置为执行当***时间距离任一个待处理的任务的生成时间的时长为第三目标时长,且所述待处理的任务还未被执行或还未执行完成时,将所述待处理的任务的状态置为执行超时状态。
在一种可能实现方式中,所述执行单元,被配置为根据所述第一任务或所述第二任务的格式,按照所述格式对应的执行方式执行所述第一任务或第二任务。
在一种可能实现方式中,所述发送单元被配置为执行周期性向所述控制设备发送任务请求,所述任务请求携带有所述当前任务执行设备的标识信息。
在一种可能实现方式中,所述发送单元还被配置为执行向所述控制设备发送任务完成情况,所述任务完成情况中每个任务的状态为成功状态或失败状态,所述任务完成情况包括状态为所述失败状态的任务的失败原因。
根据本公开实施例的第五方面,提供一种控制设备,所述控制设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行第一方面以及第一方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
根据本公开实施例的第六方面,提供一种任务执行设备,所述任务执行设备包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行第二方面以及第二方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
根据本公开实施例的第七方面,提供一种任务执行***,所述任务执行***包括控制设备和任务执行设备,其中,所述控制设备被配置为执行第一方面以及第一方面的可能实现方式中任一项所述的任务执行方法所执行的操作,所述任务执行设备被配置为执行第二方面以及第二方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
根据本公开实施例的第八方面,提供一种存储介质,该存储介质中的指令由控制设备的处理器执行时,使得所述控制设备能够执行第一方面以及第一方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
根据本公开实施例的第九方面,提供一种存储介质,该存储介质中的指令由任务执行设备的处理器执行时,使得所述任务执行设备能够执行第二方面以及第二方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
根据本公开实施例的第十方面,提供一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由控制设备的处理器执行时,使得所述控制设备能够执行第一方面以及第一方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
根据本公开实施例的第十一方面,提供一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由任务执行设备的处理器执行时,使得所述任务执行设备能够执行第二方面以及第二方面的可能实现方式中任一项所述的任务执行方法所执行的操作。
本公开的实施例提供的技术方案至少带来以下有益效果:本公开实施例中对于获取到的多个待处理的任务,同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种任务执行方法的实施环境的示意图。
图2是根据一示例性实施例示出的一种任务执行方法的实施环境的示意图。
图3是根据一示例性实施例示出的一种任务执行方法的实施环境的示意图。
图4是根据一示例性实施例示出的一种任务执行方法的流程图。
图5是根据一示例性实施例示出的一种任务执行方法的流程图。
图6是根据一示例性实施例示出的一种任务执行方法的流程图。
图7是根据一示例性实施例示出的一种任务执行***的架构示意图。
图8是根据一示例性实施例示出的一种任务执行方法的流程图。
图9是根据一示例性实施例示出的一种任务执行装置框图。
图10是根据一示例性实施例示出的一种任务执行装置框图。
图11是根据一示例性实施例示出的一种任务执行***的结构框图。
图12是根据一示例性实施例示出的一种终端的结构框图。
图13是根据一示例性实施例示出的一种服务器的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1、图2和图3均是根据一示例性实施例示出的一种任务执行方法的实施环境的示意图,图1、图2和图3中示出了任务执行方法的三种实施环境,本公开实施例可以应用于任一种实施环境中,本公开实施例对此并不作限定。
参见图1,该实施环境可以包括多个控制设备101和多个任务执行设备102,每个控制设备101可以和多个任务执行设备102通过网络或数据线连接。其中,控制设备101具有远程控制功能,任务执行设备102具有任务执行功能。在本公开实施例中,控制设备101可以远程控制任务执行设备102执行任务,任务执行设备102也可以自行执行任务。
在一种可能实现方式中,该多个控制设备101可以与任务执行平台所在服务器通过网络或数据线连接,从而该多个控制设备101可以从任务执行平台所在服务器处获取多个待处理的任务以控制任务执行设备102执行任务,或将任务发送至任务执行设备102,从而任务执行设备102自行执行任务。
参见图2,该实施环境除了多个控制设备101和多个任务执行设备102之外,还可以包括多个调度设备103,每个控制设备101可以和任务执行设备102通过网络或数据线连接,该多个调度设备103可以与控制设备101通过网络或数据线连接,该多个调度设备103均可以从任务执行平台所在服务器处获取多个待处理的任务,以进行任务调度,以便于执行任务。在一种可能实现方式中,每个调度设备103可以采用抢占式的方式从任务执行平台所在服务器处获取任务集合,该任务集合中包括多个待处理的任务,进而多个控制设备101可以从多个调度设备103处获取待处理的任务。
参见图3,该实施环境可以包括多个控制设备101、多个任务执行设备102、多个调度设备103和存储设备104,每个控制设备101和任务执行设备102可以通过网络或数据线连接,该多个调度设备103与多个控制设备101均可以通过网络或数据线与存储设备104连接,该多个调度设备103可以与从任务执行平台所在服务器处获取多个任务集合,每个调度设备103可以将获取到的任务集合中的多个待处理的任务均发送至存储设备104,在一个具体的可能实施例中,该存储设备104中可以包括任务队列,该多个调度设备103可以将该任务集合中的多个待处理的任务添加至任务队列中,从而多个控制设备101可以从该任务队列中获取多个待处理的任务。
需要说明的是,上述图1、图2和图3中仅以控制设备101、任务执行设备102、调度设备103和存储设备104被提供为服务器为例进行说明,该四种设备还可以被提供为终端,本公开实施例对此不作限定。
下面针对任务和任务集合(作业)的数据结构以及两种执行模式进行简单介绍,下述数据结构仅为一种示例性说明,并不对本公开实施例中的相关内容造成限定。
对于任务(Task):对某台任务执行设备的一次操作行为,具体是指执行用户定义的执行文件的行为。主要包括如下数据:
ID(identification,身份标识):任务id,用于唯一标识任务。
JobID:任务所属作业的id,用于获取执行文件和执行参数信息。
Host:目标任务执行设备的主机名,标识任务操作的任务执行设备。
Action:任务指令,包括执行和终止两种。
ExecuteMode:任务执行模式,分为远程执行和本地执行两种模式。
Log:任务执行过程中的输出日志,包括所有标准输出和错误输出。
ReturnCode:任务执行返回码,标识任务执行结果。
Status:任务状态。
对于作业:作业(Job):对一批任务执行设备执行的一次批量操作,作业是任务的集合,作业中的一个服务器对应一个任务。主要包括如下数据:
ID:作业id,唯一标识作业。
Name:作业名称。
Script:脚本命令,作业要批量执行的命令,支持Shell、Python和Yaml三种脚本命令类型。
Args:命令参数,脚本命令所需的参数。
Account:执行账户,执行命令时的***账户。
Hosts:服务器列表,批量执行的服务器的主机名或IP列表。
Concurrence:并发度,并发执行的任务数量。
Tolerance:失败数量,超过该数量暂停作业的执行。
PausedHost:暂停点,执行到该服务器时暂停作业的执行。
Timeout:超时时间。
Status:作业状态。
两种执行模式:
远程执行模式,由控制设备控制该任务执行设备执行任务的模式,是指由控制设备(也可以称为远程执行器或中控机)获取任务之后,通过安全壳(Secure Shell,SSH)命令(远程登录命令)连接到目标任务执行设备后,控制任务执行设备执行任务。该模式需要远程执行器可以远程登录任意一台目标机器,是一种中心化的模式。
本地执行模式,由任务执行设备自行执行任务的模式,是指目标任务执行设备主动去获取要执行的任务列表,并将任务保存到本地,本地主动触发任务的执行,并将任务的执行结果上报,是一种去中心化的模式。
图4是根据一示例性实施例示出的一种任务执行方法的流程图,如图4所示,任务执行方法应用于控制设备中,包括以下步骤。
在步骤S41中,获取多个待处理的任务。
在步骤S42中,获取该多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行该第一任务,该第一任务的执行模式为由控制设备控制该任务执行设备执行任务的模式。
在步骤S43中,当接收到任一个任务执行设备的任务请求时,从该多个待处理的任务中获取目标任务执行设备为该任一个任务执行设备的第二任务,将该第二任务发送至该任一个任务执行设备,该第二任务的执行模式为由该任务执行设备自行执行任务的模式。
本公开实施例中对于获取到的多个待处理的任务,同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
在一种可能实现方式中,该任务执行方法由控制设备集群执行,该控制设备集群包括一个主控制设备和至少一个从控制设备,该主控制设备用于分配第一任务。
在一种可能实现方式中,该获取该多个待处理的任务中的第一任务之前,该方法还包括:
当该当前控制设备为主控制设备时,从该多个待处理的任务中获取所有第一任务,将该所有第一任务分配给该当前控制设备所在的控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果;向该控制设备集群中的从控制设备发送该从控制设备对应的任务分配结果;
该获取该多个待处理的任务中的第一任务,包括:
基于该主控制设备对应的任务分配结果,从该多个待处理的任务中获取该主控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,该获取该多个待处理的任务中的第一任务之前,该方法还包括:
当该当前控制设备为从控制设备时,接收该主控制设备发送的任务分配结果。
该获取该多个待处理的任务中的第一任务,包括:
基于该从控制设备对应的任务分配结果,从该多个待处理的任务中获取该从控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,该获取多个待处理的任务,包括:轮询任务队列,得到多个待处理的任务;
该获取该多个待处理的任务中的第一任务,包括:从该任务队列中获取第一任务;
该从该多个待处理的任务中获取目标任务执行设备为该任一个任务执行设备的第二任务,包括:从该任务队列中获取目标任务执行设备为该任一个任务执行设备的第二任务。
在一种可能实现方式中,该多个待处理的任务由多个设备将目的地址存储的多个任务集合中的多个待处理的任务添加至该任务队列得到。
在一种可能实现方式中,该控制当前控制设备所关联的任务执行设备执行该第一任务,包括:
基于安全壳SSH命令,与该当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行该第一任务的步骤。
在一种可能实现方式中,该任务请求由该任一个任务执行设备周期性发送,该任务请求携带有该任一个任务执行设备的标识信息;
该从该多个待处理的任务中获取目标任务执行设备为该任一个任务执行设备的第二任务,包括:
将该任一个任务执行设备的标识信息与该多个待处理的任务中目标任务执行设备的标识信息进行匹配;
获取匹配的标识信息对应的第二任务。
在一种可能实现方式中,该方法还包括:
接收该任一个任务执行设备的任务完成情况;
基于该任务完成情况,对该多个待处理的任务的状态进行更新。
在一种可能实现方式中,该接收该任一个任务执行设备的任务完成情况之后,该方法还包括:
当根据该任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,发送告警信息。
在一种可能实现方式中,该获取多个待处理的任务之后,该方法还包括:
当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且该待处理的任务还未分配或未被获取时,将该待处理的任务的状态置为下发超时状态。
在一种可能实现方式中,该多个待处理的任务的格式包括多种格式。
图5是根据一示例性实施例示出的一种任务执行方法的流程图,如图5所示,任务执行方法应用于任务执行设备中,包括以下步骤。
在步骤S51中,基于所关联的控制设备的控制指令,执行第一任务,该第一任务的执行模式为由该控制设备控制该任务执行设备执行任务的模式。
在步骤S52中,向该控制设备发送任务请求,该任务请求用于请求当前任务执行设备所需执行的第二任务,该第二任务的执行模式为由该任务执行设备自行执行任务的模式。
在步骤S53中,接收目标任务执行设备为当前任务执行设备的第二任务。
在步骤S54中,基于该第二任务的内容,执行该第二任务。
本公开实施例中同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
在一种可能实现方式中,该方法还包括:
当***时间距离任一个待处理的任务的生成时间的时长为第三目标时长,且该待处理的任务还未被执行或还未执行完成时,将该待处理的任务的状态置为执行超时状态。
在一种可能实现方式中,该执行第一任务的过程或该执行该第二任务的过程,包括:
根据该第一任务或该第二任务的格式,按照该格式对应的执行方式执行该第一任务或第二任务。
在一种可能实现方式中,该向该控制设备发送任务请求,包括:
周期性向该控制设备发送任务请求,该任务请求携带有该当前任务执行设备的标识信息。
在一种可能实现方式中,该方法还包括:
向该控制设备发送任务完成情况,该任务完成情况中每个任务的状态为成功状态或失败状态,该任务完成情况包括状态为该失败状态的任务的失败原因。
图6是根据一示例性实施例示出的一种任务执行方法的流程图,在本公开实施例中,仅以该任务执行方法的实施环境为上述第三种实施环境为例,对调度设备、控制设备、任务执行设备和任务队列(任务队列所在设备即为存储设备)之间的交互流程进行详细说明。参见图6,该方法可以包括以下步骤:
在步骤S61中,调度设备将目的地址存储的多个任务集合中的多个待处理的任务添加至任务队列。
在本公开实施例中,该目的地址即为上述任务执行平台所在服务器的地址,用户可以在任务执行平台上提交任务,或者批量的任务,在此称批量的任务为任务集合,该任务集合还可以称为作业。在用户提交任务后,调度设备可以将该目的地址存储的多个任务集合。
在一种可能实现方式中,该调度设备的数量可以为多个,多个调度设备可以采用抢占式的方式获取任务集合,将获取到的任务集合中的多个待处理的任务添加至任务队列。该任务队列中则包括多个待处理的任务。该过程中通过设置多个调度设备可以提高作业的并发度,进而提高任务的处理效率,另外,将所有的任务都存放到任务队列中,可以保证数据一致性。
在步骤S62中,主控制设备轮询该任务队列,得到多个待处理的任务。
在该任务执行方法的实施环境中可以包括多个控制设备,在一种可能实现方式中,该多个控制设备可以为一个控制设备集群,该控制设备集群包括一个主控制设备和至少一个从控制设备,该主控制设备用于分配第一任务。该第一任务的执行模式为由控制设备控制该任务执行设备执行任务的模式,也即是,该第一任务的执行模式为远程执行模式。因而,该主控制设备可以轮询该任务队列,得到多个待处理的任务。通过主从架构的设计,主控制设备可以定期检查从控制设备的存活状况,且一旦主控制设备宕机,则可以从多个从控制设备中选择一个作为新的主控制设备,进而继续正常工作,提高了任务执行方法的可用性和容错率。
其中,该多个待处理的任务由多个设备将目的地址存储的多个任务集合中的多个待处理的任务添加至该任务队列得到。在本公开实施例中,该多个设备即为多个调度设备,在其他实施环境中,该多个设备还可以为该多个控制设备,本公开实施例对此不作限定。
在一种可能实现方式中,该主控制设备可以周期性轮询该任务队列,也即是,该主控制设备可以每隔第一预设时长轮询该任务队列,从而得到多个待处理的任务,以执行下述步骤,来实现任务执行过程。该第一预设时长可以由相关技术人员根据需求进行设置,本公开实施例对此不作限定。
该步骤S61和步骤S62是获取多个待处理的任务的过程,该过程中仅以该多个待处理的任务为任务队列中的任务为例进行说明,当然,也可以不设置任务队列,本公开实施例对此不作限定。在获取到多个待处理的任务后,即可确定如何执行该多个待处理的任务。
在步骤S63中,主控制设备从该多个待处理的任务中获取所有第一任务,将所有第一任务分配给该当前控制设备所在的控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果。
主控制设备获取到多个待处理的任务后,可以从中获取第一任务,对第一任务进行分配,得到任务分配结果。在一种可能实现方式中,该主控制设备可以将所有第一任务平均分配给当前控制设备所在的控制设备集群中的多个控制设备。
其中,该主控制设备在分配给控制设备集群中的多个控制设备时,可以分配给该控制设备集群中的所有从控制设备,而不分配给自己,也可以分配给该控制设备集群中的所有控制设备,该控制设备包括主控制设备自身。当然,该主控制设备还可以基于该控制设备集群中的多个控制设备的负载情况,将所有第一任务分配给部分控制设备。本公开实施例对具体采用哪种实现方式不作限定,下述仅以主控制设备为控制设备集群中的所有控制设备进行了任务分配。
在一种可能实现方式中,该多个待处理的任务的数据结构中可以包括执行模式字段,主控制设备可以读取该执行模式字段,根据该执行模式字段来确定每个待处理的任务是否第一任务。
在步骤S64中,主控制设备向该控制设备集群中的从控制设备发送该从控制设备对应的任务分配结果。
主控制设备将第一任务分配好后,可以将任务分配结果发送至各个从控制设备,由各个从控制设备基于任务分配结果,继续后续的任务执行步骤。
在步骤S65中,从控制设备接收对应的任务分配结果。
在步骤S66中,主控制设备和从控制设备基于对应的任务分配结果,从任务队列中获取任务分配结果所指示的第一任务。
对于主控制设备,主控制设备可以基于该主控制设备对应的任务分配结果,从该多个待处理的任务中获取该主控制设备对应的任务分配结果所指示的第一任务。对于从控制设备,从控制设备可以基于该从控制设备对应的任务分配结果,从该多个待处理的任务中获取该从控制设备对应的任务分配结果所指示的第一任务。
在上述步骤S63中,主控制设备可以将第一任务分配给主控制设备和从控制设备,也可以仅分配给从控制设备,在该步骤S66中仅以分配给主控制设备和从控制设备为例进行说明,如果该主控制设备仅将第一任务分配给从控制设备,在该步骤S66可以为:从控制设备基于该从控制设备对应的任务分配结果,从任务队列中获取该任务分配结果所指示的第一任务。
在步骤S67中,主控制设备和从控制设备控制所关联的任务执行设备执行第一任务。
主控制设备和从控制设备获取到所需执行的第一任务后,即可控制所关联的任务执行设备来执行该第一任务。该第一任务的执行模式为远程执行模式,主控制设备和从控制设备可以分别控制所关联的任务执行设备执行第一任务。
在一种可能实现方式中,该远程控制的过程可以通过SSH命令实现,具体地,从一个控制设备的角度出发,当前控制设备可以为主控制设备,也可以为从控制设备,当前控制设备可以基于SSH命令,与该当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行该第一任务的步骤。
相应地,在该步骤S67中,任务执行设备一侧则可以基于所关联的控制设备的控制指令,执行第一任务,也即是,该任务执行设备的一侧所进行的任务执行步骤是由控制设备控制的。
需要说明的是,上述步骤S63至步骤S67为获取该多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行该第一任务的过程,由于该第一任务的执行模式为远程执行模式,需要控制设备远程控制任务执行设备来自行第一任务。在一种可能实现方式中,任务的执行模式除了该远程执行模式之外,还包括另一种执行模式,在此称其为本地执行模式,该本地执行模式为由任务执行设备自行执行任务的模式。执行模式为该本地执行模式的任务为第二任务。该第二任务的执行过程可以参见下述步骤S68至S71,在此不多做赘述。
在步骤S68中,任务执行设备向所关联的控制设备发送任务请求。
任务执行设备可以向所关联的控制设备发送任务请求,以请求该任务执行设备所需执行的第二任务。
在一种可能实现方式中,任务执行设备可以周期性向该控制设备发送任务请求,该任务请求携带有该当前任务执行设备的标识信息,也即是,该任务请求由该任一个任务执行设备周期性发送,该任务请求携带有该任一个任务执行设备的标识信息。
该任务执行设备可以每隔第二预设时长向所关联的控制设备发送任务请求,该第二预设时长可以由相关技术人员根据需求进行设置,本公开实施例对此不作限定。
在步骤S69中,当主控制设备或从控制设备接收到任一个任务执行设备的任务请求时,主控制设备或从控制设备从任务队列中获取目标执行设备为该任务执行设备的第二任务。
主控制设备和从控制设备均可以接收其所关联的任务执行设备发送的任务请求,从而在接收到任务请求后,从任务队列中获取其所需执行的第二任务。
在一种可能实现方式中,该多个待处理的任务的数据结构中可以包括执行模式字段,主控制设备或从控制设备可以读取该执行模式字段,根据该执行模式字段来确定每个待处理的任务是否第二任务。
在一个具体的可能实施例中,主控制设备和从控制设备可以根据任务执行设备的标识信息来确定每个第二任务是否为该任一任务执行设备,具体地,主控制设备或从控制设备可以将该任一个任务执行设备的标识信息与该多个待处理的任务中目标任务执行设备的标识信息进行匹配,获取匹配的标识信息对应的第二任务。
在一个具体的可能实施例中,任务执行设备还可以向所关联的主控制设备或从控制设备发送任务完成情况,该任务完成情况中每个任务的状态为成功状态或失败状态,该任务完成情况包括状态为该失败状态的任务的失败原因。进而,主控制设备或从控制设备可以接收该任一个任务执行设备的任务完成情况,基于该任务完成情况,对该多个待处理的任务的状态进行更新。例如,可以将任务的状态更改为已处理,或可以将已被处理的任务从任务队列中清除。
对于处于失败状态的任务,可以根据该失败原因,分析是设备原因还是人为原因,进而反馈给用户。当然,根据该任务完成情况还可以分析得到设备状态。在一种可能实现方式中,当根据该任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,主控制设备或从控制设备发送告警信息。这样在任务执行过程中可以由相关技术人员及时根据告警信息,排查错误,以继续执行任务执行方法的过程,提高处理效率。
在步骤S70中,主控制设备或从控制设备将第二任务发送至该任一个任务执行设备。
由于第二任务的执行模式为本地执行模式,也即是,任务执行设备自行执行任务的模式,主控制设备或从控制设备可以直接将第二任务发送至该任一任务执行设备,而无需远程控制任务的执行。
该步骤S68至步骤S70为当接收到任一个任务执行设备的任务请求时,从该多个待处理的任务中获取目标任务执行设备为该任一个任务执行设备的第二任务,将该第二任务发送至该任一个任务执行设备的过程,本公开实施例中,任务执行设备同时支持两种执行模式,两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,通用性高。
在步骤S71中,当接收到该第二任务时,该任一个任务执行设备基于第二任务的内容,执行第二任务。
在上述步骤S62之后,每个待处理的任务还可以设置有存活时间,也即是第二目标时长,当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且该待处理的任务还未分配或未被获取时,主控制设备、从控制设备或任务队列所在的存储设备可以将该待处理的任务的状态置为下发超时状态。
对于任务执行设备,当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且该待处理的任务还未被执行或还未执行完成时,任务执行设备还可以将该待处理的任务的状态置为执行超时状态。通过上述两种超时状态可以提高对超时时间的精细控制能力。
在一种可能实现方式中,该多个待处理的任务的格式包括多种格式。上述主控制设备和从控制设备控制任务执行设备执行第一任务的过程中,或任务执行设备执行该第二任务的过程中,可以根据该第一任务或该第二任务的格式,按照该格式对应的执行方式执行该第一任务或第二任务。相比于相关技术中仅支持一种格式,需要用户熟悉特定格式的基本语法才可使用,提供了更多格式,使用灵活,提高了任务执行方法的通用性。
需要说明的是,上述步骤S63至S67的过程与步骤S68至S70的过程可以采用任意时序实现,也即是,二者独立,可一先一后执行,也可同时执行,本公开实施例对此不作限定。本公开中,对于获取到的多个待处理的任务,既可以选出需控制设备控制执行的第一任务,进而控制任务设备执行第一任务,又可以将需任务执行设备自行执行的第二任务发送给相应的任务执行设备,同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,通用性高。
相关技术中大规模并发性能依赖于底层工具***,批量操作的服务器数量达到万级别,会出现性能瓶颈,而本公开实施例提供的任务执行方法无需依赖狄岑该工具***,可以减少运维成本,且可以自行根据使用需求增加设备数量,提高并发能力,通过调度设备、控制设备和任务执行设备三层架构,各层独立部署,互不影响,可以减少耦合。
下面通过一个具体示例,对上述任务执行方法的具体流程进行说明,参见图7和图8,该任务执行方法的架构可以分为三层:调度(Scheduler)层、工作(Worker)层和执行(Agent)层。
对于Scheduler层,该层的核心组件是调度器(Scheduler,可以部署于调度设备),主要负责作业的抢占和调度。作业调度集群部署多个Scheduler,各个Scheduler不分主次,采用抢占式作业调度,提高了作业调度的效率,保证了该层的可用性。
对于Worker层,该层的核心组件是工作器(Worker,也即是控制设备),主要负责本地执行模式的任务的下发和远程执行模式任务的执行。该Worker具体可以采用Worker集群的方式,该Worker集群采用了主-从架构,主节点(Worker-leader,也即是主控制设备)负责定期检查从节点(Worker-follower,也即是从控制设备)的存活状况,同时会采用一定分配算法将远程执行模式的任务均衡地分配给所有Worker。
对于Agent层,该层是由Agent组件组成,每台任务执行设备上都需要部署Agent进程,负责任务的获取和执行。Agent进程在启动后会自动向Worker集群进行注册,获取要执行的任务(本地执行模式)列表并在本地启动执行程序。
参见图8,该任务执行方法的具体流程可以为:Scheduler只负责作业(任务集合)的抢占和调度,只要用户提交作业,Scheduler便会对新提交的作业进行抢占,然后会根据作业的服务器列表(hosts字段)拆分成多个任务发送到任务队列(Task Queue)。其中,该服务器列表是指任务执行设备列表,在此仅以该任务执行设备为服务器为例进行说明。
对于远程执行模式的任务,Worker Leader会不断轮训任务队列,根据队列中任务的执行模式(ExecuteMode字段)查询出远程执行模式的任务,然后均衡地将这些任务分配给当前***中的所有Worker。每个Worker获取到远程执行的任务后,会通过SSH命令登录远程服务器执行任务,具体逻辑如下:
1、下载根据任务中的JobID下载该作业的脚本压缩包。
2、拷贝压缩包到目标服务器并解压。
3、远程登录目标服务器。
4、切换账户并启动执行命令。
5、启动任务超时检查线程。
6、若任务超时,终止任务执行,否则等待任务执行完成后,将任务从队列中清除,保存执行结果,更新任务状态。
对于本地执行任务,Agent每隔1秒会向Worker进行注册,发送心跳请求,每次发送的请求包括如下内容:
Hostname:当前服务器的主机名
IP:当前服务器的IP地址
FinishedTask:当前已经执行完成(成功或失败)的任务列表
任务下发和执行的具体流程如下:
1、Worker将Agent上报的任务从队列中清除,更新任务状态,保存执行结果。
2、Worker根据Agent的Hostname和IP,从队列中查询该Agent的任务并返回。
3、Agent获取到新的任务后,启动任务执行器。
4、任务执行器下载脚本压缩包到本地并解压。
5、读取脚本压缩包中的配置文件,获取作业配置(执行账户、参数、超时时间)。
6、切换账户并执行命令。
7、启动超时检查,若命令执行超时,则终止任务。否则,等待执行完成后,将任务上报给Worker。
基于以上的三层架构设计,实现了分布式批量任务下发和执行***,极大地提高运维效率,解决一些运维工程师缺乏平台支持、运维操作无法积累、分享和管控的问题。该三层所组成的***作为整个运维平台最底层和最基础的部分,隐藏了底层任务执行设备操作的具体细节,以更加友好的方式向上层平台提供操作任务执行设备的统一应用程序编程接口(Application Programming Interface,API)。另外,以作业的形式将一次批量操作进行封装,提供了对任务执行设备进行基础的、***层面的批量并发控制能力,同时提供对作业并发度、容错和超时时间的精细控制能力。通过该***可以统一对任务执行设备的操作入口,将任务执行设备的批量操作统一收敛到***上,规范了对任务执行设备的操作,对于安全审计、事故追踪和命令审查都提供了支持。
本公开实施例中对于获取到的多个待处理的任务,同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
图9是根据一示例性实施例示出的一种任务执行装置框图。参照图9,该装置包括:
获取单元901,被配置为执行获取多个待处理的任务;
执行单元902,被配置为执行获取该多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行该第一任务,该第一任务的执行模式为由控制设备控制该任务执行设备执行任务的模式;
该执行单元902,还被配置为执行当接收到任一个任务执行设备的任务请求时,从该多个待处理的任务中获取目标任务执行设备为该任一个任务执行设备的第二任务,将该第二任务发送至该任一个任务执行设备,该第二任务的执行模式为由该任务执行设备自行执行任务的模式。
在一种可能实现方式中,该任务执行装置应用于控制设备集群,该控制设备集群包括一个主控制设备和至少一个从控制设备,该主控制设备用于分配第一任务。
在一种可能实现方式中,该任务执行装置还包括:
分配单元,被配置为执行当该当前控制设备为主控制设备时,从该多个待处理的任务中获取所有第一任务,将该所有第一任务分配给该当前控制设备所在的控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果;向该控制设备集群中的从控制设备发送该从控制设备对应的任务分配结果;
该执行单元902被配置为执行基于该主控制设备对应的任务分配结果,从该多个待处理的任务中获取该主控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,该任务执行装置还包括:
第一接收单元,被配置为执行当该当前控制设备为从控制设备时,接收该主控制设备发送的任务分配结果。
该执行单元902被配置为执行基于该从控制设备对应的任务分配结果,从该多个待处理的任务中获取该从控制设备对应的任务分配结果所指示的第一任务。
在一种可能实现方式中,该获取单元901被配置为执行轮询任务队列,得到多个待处理的任务;
该执行单元902被配置为执行从该任务队列中获取第一任务;
该执行单元902被配置为执行从该任务队列中获取目标任务执行设备为该任一个任务执行设备的第二任务。
在一种可能实现方式中,该多个待处理的任务由多个设备将目的地址存储的多个任务集合中的多个待处理的任务添加至该任务队列得到。
在一种可能实现方式中,该执行单元902被配置为执行基于安全壳SSH命令,与该当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行该第一任务的步骤。
在一种可能实现方式中,该任务请求由该任一个任务执行设备周期性发送,该任务请求携带有该任一个任务执行设备的标识信息;
该执行单元902被配置为执行:
将该任一个任务执行设备的标识信息与该多个待处理的任务中目标任务执行设备的标识信息进行匹配;
获取匹配的标识信息对应的第二任务。
在一种可能实现方式中,该任务执行装置还包括:
第二接收单元,被配置为执行接收该任一个任务执行设备的任务完成情况;
更新单元,被配置为执行基于该任务完成情况,对该多个待处理的任务的状态进行更新。
在一种可能实现方式中,该任务执行装置还包括:
发送单元,被配置为执行当根据该任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,发送告警信息。
在一种可能实现方式中,该任务执行装置还包括:
设置单元,被配置为执行当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且该待处理的任务还未分配或未被获取时,将该待处理的任务的状态置为下发超时状态。
在一种可能实现方式中,该多个待处理的任务的格式包括多种格式。
本公开实施例中对于获取到的多个待处理的任务,同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10是根据一示例性实施例示出的一种任务执行装置框图。参照图10,该装置包括:
执行单元1001,被配置为执行基于所关联的控制设备的控制指令,执行第一任务,该第一任务的执行模式为由该控制设备控制该任务执行设备执行任务的模式;
发送单元1002,被配置为执行向该控制设备发送任务请求,该任务请求用于请求当前任务执行设备所需执行的第二任务,该第二任务的执行模式为由该任务执行设备自行执行任务的模式;
接收单元1003,被配置为执行接收目标任务执行设备为当前任务执行设备的第二任务;
该执行单元1001,还被配置为执行基于该第二任务的内容,执行该第二任务。
在一种可能实现方式中,该任务执行装置还包括:
设置单元,被配置为执行当***时间距离任一个待处理的任务的生成时间的时长为第三目标时长,且该待处理的任务还未被执行或还未执行完成时,将该待处理的任务的状态置为执行超时状态。
在一种可能实现方式中,该执行单元1001,被配置为根据该第一任务或该第二任务的格式,按照该格式对应的执行方式执行该第一任务或第二任务。
在一种可能实现方式中,该发送单元1002被配置为执行周期性向该控制设备发送任务请求,该任务请求携带有该当前任务执行设备的标识信息。
在一种可能实现方式中,该发送单元1002还被配置为执行向该控制设备发送任务完成情况,该任务完成情况中每个任务的状态为成功状态或失败状态,该任务完成情况包括状态为该失败状态的任务的失败原因。
本公开实施例中同时支持两种执行模式,且两种执行模式兼容,提供了更灵活的任务执行服务,用户可以随意提交两种执行模式的任务,通过该任务执行方法的过程均可以对任务进行处理,因而,上述任务执行方法的通用性高。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种任务执行***的结构框图。参见图11,该任务执行***可以包括控制设备和任务执行设备。其中,该控制设备可以部署有上述图9所示的任务执行装置,或该控制设备即为上述图9所示的任务执行装置。该任务执行设备可以部署有上述图10所示的任务执行装置,或该任务执行设备即为上述图10所示的任务执行装置。该控制设备和任务执行设备被配置为执行上述方法实施例所示的任务执行方法所执行的操作。
图12是根据一示例性实施例示出的一种终端的结构框图。该终端1200可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本公开中方法实施例提供的任务执行方法。
在一些实施例中,终端1200还可选包括有:***设备接口1203和至少一个***设备。处理器1201、存储器1202和***设备接口1203之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口1203相连。具体地,***设备包括:射频电路1204、触摸显示屏1205、摄像头1206、音频电路1207、定位组件1208和电源1209中的至少一种。
***设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和***设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和***设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置终端1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端1200的不同表面或呈折叠设计;在再一些实施例中,显示屏1205可以是柔性显示屏,设置在终端1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
定位组件1208用于定位终端1200的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1208可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***、俄罗斯的格雷纳斯***或欧盟的伽利略***的定位组件。
电源1209用于为终端1200中的各个组件进行供电。电源1209可以是交流电、直流电、一次性电池或可充电电池。当电源1209包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1200还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。
加速度传感器1211可以检测以终端1200建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1211可以用于检测重力加速度在三个坐标轴上的分量。处理器1201可以根据加速度传感器1211采集的重力加速度信号,控制触摸显示屏1205以横向视图或纵向视图进行用户界面的显示。加速度传感器1211还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1212可以检测终端1200的机体方向及转动角度,陀螺仪传感器1212可以与加速度传感器1211协同采集用户对终端1200的3D动作。处理器1201根据陀螺仪传感器1212采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1213可以设置在终端1200的侧边框和/或触摸显示屏1205的下层。当压力传感器1213设置在终端1200的侧边框时,可以检测用户对终端1200的握持信号,由处理器1201根据压力传感器1213采集的握持信号进行左右手识别或快捷操作。当压力传感器1213设置在触摸显示屏1205的下层时,由处理器1201根据用户对触摸显示屏1205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1214用于采集用户的指纹,由处理器1201根据指纹传感器1214采集到的指纹识别用户的身份,或者,由指纹传感器1214根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1201授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1214可以被设置终端1200的正面、背面或侧面。当终端1200上设置有物理按键或厂商Logo时,指纹传感器1214可以与物理按键或厂商Logo集成在一起。
光学传感器1215用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1215采集的环境光强度,控制触摸显示屏1205的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1205的显示亮度;当环境光强度较低时,调低触摸显示屏1205的显示亮度。在另一个实施例中,处理器1201还可以根据光学传感器1215采集的环境光强度,动态调整摄像头组件1206的拍摄参数。
接近传感器1216,也称距离传感器,通常设置在终端1200的前面板。接近传感器1216用于采集用户与终端1200的正面之间的距离。在一个实施例中,当接近传感器1216检测到用户与终端1200的正面之间的距离逐渐变小时,由处理器1201控制触摸显示屏1205从亮屏状态切换为息屏状态;当接近传感器1216检测到用户与终端1200的正面之间的距离逐渐变大时,由处理器1201控制触摸显示屏1205从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图13是根据一示例性实施例示出的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1301和一个或一个以上的存储器1302,其中,该存储器1302中存储有至少一条指令,该至少一条指令由该处理器1301加载并执行以实现上述各个方法实施例提供的任务执行方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由任务执行设备或控制设备的处理器执行以完成上述任务执行方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由任务执行设备或控制设备的处理器执行,以完成上述实施例中提供的任务执行方法的方法步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (32)
1.一种任务执行方法,其特征在于,由控制设备集群执行,所述控制设备集群包括一个主控制设备和至少一个从控制设备,所述方法包括:
获取多个待处理的任务,所述多个待处理的任务由多个调度设备采用抢占式的方式获取目的地址存储的多个任务集合,以及将获取到的任务集合中的多个待处理的任务添加至任务队列得到,所述多个待处理的任务的数据结构中包括执行模式字段,所述执行模式字段用于确定每个待处理的任务是否为第一任务;
若当前控制设备为主控制设备,基于所述执行模式字段,从所述多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果,向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果;
获取所述多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行所述第一任务,所述第一任务的执行模式为由控制设备控制所述任务执行设备执行任务的模式,其中,若当前控制设备为主控制设备,基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务;
当接收到任一个任务执行设备的任务请求时,从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,将所述第二任务发送至所述任一个任务执行设备,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式。
2.根据权利要求1所述的任务执行方法,其特征在于,所述获取所述多个待处理的任务中的第一任务之前,所述方法还包括:
当所述当前控制设备为从控制设备时,接收所述主控制设备发送的任务分配结果;
所述获取所述多个待处理的任务中的第一任务,包括:
基于所述从控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述从控制设备对应的任务分配结果所指示的第一任务。
3.根据权利要求1所述的任务执行方法,其特征在于,所述获取多个待处理的任务,包括:轮询所述任务队列,得到多个待处理的任务;
所述获取所述多个待处理的任务中的第一任务,包括:从所述任务队列中获取第一任务;
所述从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,包括:从所述任务队列中获取目标任务执行设备为所述任一个任务执行设备的第二任务。
4.根据权利要求1所述的任务执行方法,其特征在于,所述控制当前控制设备所关联的任务执行设备执行所述第一任务,包括:
基于安全壳SSH命令,与所述当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行所述第一任务的步骤。
5.根据权利要求1所述的任务执行方法,其特征在于,所述任务请求由所述任一个任务执行设备周期性发送,所述任务请求携带有所述任一个任务执行设备的标识信息;
所述从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,包括:
将所述任一个任务执行设备的标识信息与所述多个待处理的任务中目标任务执行设备的标识信息进行匹配;
获取匹配的标识信息对应的第二任务。
6.根据权利要求1所述的任务执行方法,其特征在于,所述方法还包括:
接收所述任一个任务执行设备的任务完成情况;
基于所述任务完成情况,对所述多个待处理的任务的状态进行更新。
7.根据权利要求6所述的任务执行方法,其特征在于,所述接收所述任一个任务执行设备的任务完成情况之后,所述方法还包括:
当根据所述任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,发送告警信息。
8.根据权利要求1所述的任务执行方法,其特征在于,所述获取多个待处理的任务之后,所述方法还包括:
当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且所述待处理的任务还未分配或未被获取时,将所述待处理的任务的状态置为下发超时状态。
9.根据权利要求1所述的任务执行方法,其特征在于,所述多个待处理的任务的格式包括多种格式。
10.一种任务执行方法,其特征在于,应用于任务执行设备,所述方法包括:
基于所关联的控制设备的控制指令,执行第一任务,所述第一任务的执行模式为由所述控制设备控制所述任务执行设备执行任务的模式;
向所述控制设备发送任务请求,所述任务请求用于请求当前任务执行设备所需执行的第二任务,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式;
接收目标任务执行设备为当前任务执行设备的第二任务;
基于所述第二任务的内容,执行所述第二任务;
其中,所述控制设备为控制设备集群中的控制设备,所述控制设备集群包括一个主控制设备和至少一个从控制设备,所述主控制设备用于基于执行模式字段,从多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果,向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果,以及基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务,所述多个待处理的任务由多个调度设备采用抢占式的方式获取目的地址存储的多个任务集合,以及将获取到的任务集合中的多个待处理的任务添加至任务队列得到,所述多个待处理的任务的数据结构中包括执行模式字段,所述执行模式字段用于确定每个待处理的任务是否为第一任务。
11.根据权利要求10所述的任务执行方法,其特征在于,所述方法还包括:
当***时间距离任一个待处理的任务的生成时间的时长为第三目标时长,且所述待处理的任务还未被执行或还未执行完成时,将所述待处理的任务的状态置为执行超时状态。
12.根据权利要求10所述的任务执行方法,其特征在于,所述执行第一任务的过程或所述执行所述第二任务的过程,包括:
根据所述第一任务或所述第二任务的格式,按照所述格式对应的执行方式执行所述第一任务或第二任务。
13.根据权利要求10所述的任务执行方法,其特征在于,所述向所述控制设备发送任务请求,包括:
周期性向所述控制设备发送任务请求,所述任务请求携带有所述当前任务执行设备的标识信息。
14.根据权利要求10所述的任务执行方法,其特征在于,所述方法还包括:
向所述控制设备发送任务完成情况,所述任务完成情况中每个任务的状态为成功状态或失败状态,所述任务完成情况包括状态为所述失败状态的任务的失败原因。
15.一种任务执行装置,其特征在于,应用于控制设备集群,所述控制设备集群包括一个主控制设备和至少一个从控制设备,包括:
获取单元,被配置为执行获取多个待处理的任务,所述多个待处理的任务由多个调度设备采用抢占式的方式获取目的地址存储的多个任务集合,以及将获取到的任务集合中的多个待处理的任务添加至任务队列得到,所述多个待处理的任务的数据结构中包括执行模式字段,所述执行模式字段用于确定每个待处理的任务是否为第一任务;
分配单元,被配置为执行若当前控制设备为主控制设备,基于所述执行模式字段,从所述多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果,向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果;
执行单元,被配置为执行获取所述多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行所述第一任务,所述第一任务的执行模式为由控制设备控制所述任务执行设备执行任务的模式,其中,若当前控制设备为主控制设备,所述执行单元,被配置为执行基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务;
所述执行单元,还被配置为执行当接收到任一个任务执行设备的任务请求时,从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,将所述第二任务发送至所述任一个任务执行设备,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式。
16.根据权利要求15所述的任务执行装置,其特征在于,所述任务执行装置还包括:
第一接收单元,被配置为执行当所述当前控制设备为从控制设备时,接收所述主控制设备发送的任务分配结果;
所述执行单元被配置为执行基于所述从控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述从控制设备对应的任务分配结果所指示的第一任务。
17.根据权利要求15所述的任务执行装置,其特征在于,所述获取单元被配置为执行轮询所述任务队列,得到多个待处理的任务;
所述执行单元被配置为执行从所述任务队列中获取第一任务;
所述执行单元被配置为执行从所述任务队列中获取目标任务执行设备为所述任一个任务执行设备的第二任务。
18.根据权利要求15所述的任务执行装置,其特征在于,所述执行单元被配置为执行基于安全壳SSH命令,与所述当前控制设备所关联的任务执行设备建立连接,控制与当前控制设备连接成功的任务执行设备执行所述第一任务的步骤。
19.根据权利要求15所述的任务执行装置,其特征在于,所述任务请求由所述任一个任务执行设备周期性发送,所述任务请求携带有所述任一个任务执行设备的标识信息;
所述执行单元被配置为执行:
将所述任一个任务执行设备的标识信息与所述多个待处理的任务中目标任务执行设备的标识信息进行匹配;
获取匹配的标识信息对应的第二任务。
20.根据权利要求15所述的任务执行装置,其特征在于,所述任务执行装置还包括:
第二接收单元,被配置为执行接收所述任一个任务执行设备的任务完成情况;
更新单元,被配置为执行基于所述任务完成情况,对所述多个待处理的任务的状态进行更新。
21.根据权利要求20所述的任务执行装置,其特征在于,所述任务执行装置还包括:
发送单元,被配置为执行当根据所述任务完成情况确定第一目标时长内包括目标数量的任务的状态为失败状态时,发送告警信息。
22.根据权利要求15所述的任务执行装置,其特征在于,所述任务执行装置还包括:
设置单元,被配置为执行当***时间距离任一个待处理的任务的生成时间的时长为第二目标时长,且所述待处理的任务还未分配或未被获取时,将所述待处理的任务的状态置为下发超时状态。
23.根据权利要求15所述的任务执行装置,其特征在于,所述多个待处理的任务的格式包括多种格式。
24.一种任务执行装置,其特征在于,包括:
执行单元,被配置为执行基于所关联的控制设备的控制指令,执行第一任务,所述第一任务的执行模式为由所述控制设备控制所述任务执行设备执行任务的模式;
发送单元,被配置为执行向所述控制设备发送任务请求,所述任务请求用于请求当前任务执行设备所需执行的第二任务,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式;
接收单元,被配置为执行接收目标任务执行设备为当前任务执行设备的第二任务;
所述执行单元,还被配置为执行基于所述第二任务的内容,执行所述第二任务;
其中,所述控制设备为控制设备集群中的控制设备,所述控制设备集群包括一个主控制设备和至少一个从控制设备,所述主控制设备用于基于执行模式字段,从多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果,向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果,以及基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务,所述多个待处理的任务由多个调度设备采用抢占式的方式获取目的地址存储的多个任务集合,以及将获取到的任务集合中的多个待处理的任务添加至任务队列得到,所述多个待处理的任务的数据结构中包括执行模式字段,所述执行模式字段用于确定每个待处理的任务是否为第一任务。
25.根据权利要求24所述的任务执行装置,其特征在于,所述任务执行装置还包括:
设置单元,被配置为执行当***时间距离任一个待处理的任务的生成时间的时长为第三目标时长,且所述待处理的任务还未被执行或还未执行完成时,将所述待处理的任务的状态置为执行超时状态。
26.根据权利要求24所述的任务执行装置,其特征在于,所述执行单元,被配置为根据所述第一任务或所述第二任务的格式,按照所述格式对应的执行方式执行所述第一任务或第二任务。
27.根据权利要求24所述的任务执行装置,其特征在于,所述发送单元被配置为执行周期性向所述控制设备发送任务请求,所述任务请求携带有所述当前任务执行设备的标识信息。
28.根据权利要求24所述的任务执行装置,其特征在于,所述发送单元还被配置为执行向所述控制设备发送任务完成情况,所述任务完成情况中每个任务的状态为成功状态或失败状态,所述任务完成情况包括状态为所述失败状态的任务的失败原因。
29.一种控制设备,其特征在于,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的任务执行方法。
30.一种任务执行设备,其特征在于,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行所述指令,以实现如权利要求10至14任一项所述的任务执行方法。
31.一种任务执行***,其特征在于,包括:
控制设备,被配置为执行获取多个待处理的任务,所述多个待处理的任务由多个调度设备采用抢占式的方式获取目的地址存储的多个任务集合,以及将获取到的任务集合中的多个待处理的任务添加至任务队列得到,所述多个待处理的任务的数据结构中包括执行模式字段,所述执行模式字段用于确定每个待处理的任务是否为第一任务;获取所述多个待处理的任务中的第一任务,控制当前控制设备所关联的任务执行设备执行所述第一任务,所述第一任务的执行模式为由控制设备控制所述任务执行设备执行任务的模式;当接收到任一个任务执行设备的任务请求时,从所述多个待处理的任务中获取目标任务执行设备为所述任一个任务执行设备的第二任务,将所述第二任务发送至所述任一个任务执行设备,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式,其中,所述控制设备为控制设备集群中的控制设备,所述控制设备集群包括一个主控制设备和至少一个从控制设备,所述主控制设备,被配置为执行基于所述执行模式字段,从所述多个待处理的任务中获取所有第一任务,将所述所有第一任务分配给所述控制设备集群中的多个控制设备,得到每个控制设备对应的任务分配结果,向所述控制设备集群中的从控制设备发送所述从控制设备对应的任务分配结果,以及基于所述主控制设备对应的任务分配结果,从所述多个待处理的任务中获取所述主控制设备对应的任务分配结果所指示的第一任务;
任务执行设备,被配置为执行基于所关联的控制设备的控制指令,执行第一任务,所述第一任务的执行模式为由所述控制设备控制所述任务执行设备执行任务的模式;向所述控制设备发送任务请求,所述任务请求用于请求当前任务执行设备所需执行的第二任务,所述第二任务的执行模式为由所述任务执行设备自行执行任务的模式;接收目标任务执行设备为当前任务执行设备的第二任务;基于所述第二任务的内容,执行所述第二任务。
32.一种存储介质,其特征在于,当所述存储介质中的指令由控制设备的处理器执行时,使得所述控制设备能够执行如权利要求1至9中任一项所述的任务执行方法;或者,当所述存储介质中的指令由任务执行设备执行时,使得所述任务执行设备能够执行如权利要求10至14任一项所述的任务执行方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498333.4A CN110209488B (zh) | 2019-06-10 | 2019-06-10 | 任务执行方法、装置、设备、***及存储介质 |
PCT/CN2020/077043 WO2020248626A1 (zh) | 2019-06-10 | 2020-02-27 | 任务执行方法、装置、设备、***及存储介质 |
EP20822180.4A EP3982262A4 (en) | 2019-06-10 | 2020-02-27 | METHOD, APPARATUS, DEVICE AND SYSTEM FOR TASK PERFORMANCE, AND STORAGE MEDIA |
US17/548,303 US11556380B2 (en) | 2019-06-10 | 2021-12-10 | Task execution method, apparatus, device and system, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910498333.4A CN110209488B (zh) | 2019-06-10 | 2019-06-10 | 任务执行方法、装置、设备、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110209488A CN110209488A (zh) | 2019-09-06 |
CN110209488B true CN110209488B (zh) | 2021-12-07 |
Family
ID=67791705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910498333.4A Active CN110209488B (zh) | 2019-06-10 | 2019-06-10 | 任务执行方法、装置、设备、***及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11556380B2 (zh) |
EP (1) | EP3982262A4 (zh) |
CN (1) | CN110209488B (zh) |
WO (1) | WO2020248626A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209488B (zh) * | 2019-06-10 | 2021-12-07 | 北京达佳互联信息技术有限公司 | 任务执行方法、装置、设备、***及存储介质 |
US11842225B2 (en) * | 2019-10-03 | 2023-12-12 | Steering Solutions Ip Holding Corporation | Systems and methods for decentralized-distributed processing of vehicle data |
CN111581407B (zh) * | 2020-04-20 | 2023-09-12 | 国家卫星气象中心(国家空间天气监测预警中心) | 一种构建全球地理定位参考影像数据库的方法、装置及介质 |
CN112114873B (zh) * | 2020-08-19 | 2023-03-21 | 成都安易迅科技有限公司 | 任务处理的方法、装置及计算机设备 |
CN112508449B (zh) * | 2020-12-21 | 2023-06-30 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN113114307B (zh) * | 2021-03-30 | 2023-05-23 | 联想(北京)有限公司 | 一种信息处理方法、电子设备及存储介质 |
CN113032125A (zh) * | 2021-04-02 | 2021-06-25 | 京东数字科技控股股份有限公司 | 作业调度方法、装置、计算机***和计算机可读存储介质 |
CN113671844A (zh) * | 2021-08-06 | 2021-11-19 | 深圳市欧瑞博科技股份有限公司 | 智能设备控制方法、装置、智能控制设备以及存储介质 |
CN115037702B (zh) * | 2022-05-23 | 2024-04-12 | 北京梧桐车联科技有限责任公司 | 报文分发、数据发送方法及设备 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148323A (en) * | 1995-12-29 | 2000-11-14 | Hewlett-Packard Company | System and method for managing the execution of system management |
US7007275B1 (en) * | 1999-10-21 | 2006-02-28 | Unisys Corporation | Method and apparatus for automatic execution of concatenated methods across multiple heterogeneous data sources |
SE0200418D0 (sv) * | 2002-02-13 | 2002-02-13 | Ericsson Telefon Ab L M | A method and apparatus for computer load sharing and data distribution |
US8205208B2 (en) * | 2007-07-24 | 2012-06-19 | Internaitonal Business Machines Corporation | Scheduling grid jobs using dynamic grid scheduling policy |
US7970872B2 (en) * | 2007-10-01 | 2011-06-28 | Accenture Global Services Limited | Infrastructure for parallel programming of clusters of machines |
US8151272B2 (en) * | 2008-04-07 | 2012-04-03 | At&T Intellectual Property I, Lp | Optimized usage of collector resources for performance data collection through even task assignment |
US20090319662A1 (en) * | 2008-06-24 | 2009-12-24 | Barsness Eric L | Process Migration Based on Exception Handling in a Multi-Node Environment |
KR101658035B1 (ko) * | 2010-03-12 | 2016-10-04 | 삼성전자주식회사 | 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 |
CN102073546B (zh) * | 2010-12-13 | 2013-07-10 | 北京航空航天大学 | 一种云计算环境中分布式计算模式下的任务动态调度方法 |
US9747127B1 (en) * | 2012-03-30 | 2017-08-29 | EMC IP Holding Company LLC | Worldwide distributed job and tasks computational model |
US20130339972A1 (en) * | 2012-06-18 | 2013-12-19 | Zhuoyao Zhang | Determining an allocation of resources to a program having concurrent jobs |
US9342376B2 (en) * | 2012-06-27 | 2016-05-17 | Intel Corporation | Method, system, and device for dynamic energy efficient job scheduling in a cloud computing environment |
US9331943B2 (en) * | 2013-09-10 | 2016-05-03 | Robin Systems, Inc. | Asynchronous scheduling informed by job characteristics and anticipatory provisioning of data for real-time, parallel processing |
US20150121387A1 (en) * | 2013-10-30 | 2015-04-30 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium |
US9442760B2 (en) * | 2014-10-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Job scheduling using expected server performance information |
US10120904B2 (en) * | 2014-12-31 | 2018-11-06 | Cloudera, Inc. | Resource management in a distributed computing environment |
JP2017037492A (ja) * | 2015-08-10 | 2017-02-16 | 富士通株式会社 | 分散処理プログラム、分散処理方法および分散処理装置 |
US9804895B2 (en) * | 2015-08-28 | 2017-10-31 | Vmware, Inc. | Constrained placement in hierarchical randomized schedulers |
US10977260B2 (en) * | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
CN108268318A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种分布式***任务分配的方法和装置 |
CN107688496B (zh) * | 2017-07-24 | 2020-12-04 | 深圳壹账通智能科技有限公司 | 任务分布式处理方法、装置、存储介质和服务器 |
CN108304255A (zh) * | 2017-12-29 | 2018-07-20 | 北京城市网邻信息技术有限公司 | 分布式任务调度方法及装置、电子设备及可读存储介质 |
CN108768931A (zh) | 2018-04-09 | 2018-11-06 | 卓望数码技术(深圳)有限公司 | 一种多媒体文件篡改检测***与方法 |
CN108762931A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于分布式调度***的任务调度方法、服务器及存储介质 |
CN108829506A (zh) * | 2018-07-04 | 2018-11-16 | 中国建设银行股份有限公司 | 批量任务处理方法、装置及服务*** |
CN109614209B (zh) * | 2018-10-26 | 2023-09-05 | 创新先进技术有限公司 | 一种任务处理方法、应用服务器及*** |
CN109445922A (zh) * | 2018-10-31 | 2019-03-08 | 北京慧流科技有限公司 | 任务处理方法及装置、电子设备及存储介质 |
CN109656706A (zh) * | 2018-12-25 | 2019-04-19 | 江苏满运软件科技有限公司 | 分布式任务调度方法、***、设备以及介质 |
CN110209488B (zh) * | 2019-06-10 | 2021-12-07 | 北京达佳互联信息技术有限公司 | 任务执行方法、装置、设备、***及存储介质 |
-
2019
- 2019-06-10 CN CN201910498333.4A patent/CN110209488B/zh active Active
-
2020
- 2020-02-27 WO PCT/CN2020/077043 patent/WO2020248626A1/zh unknown
- 2020-02-27 EP EP20822180.4A patent/EP3982262A4/en not_active Withdrawn
-
2021
- 2021-12-10 US US17/548,303 patent/US11556380B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3982262A4 (en) | 2022-08-10 |
CN110209488A (zh) | 2019-09-06 |
WO2020248626A1 (zh) | 2020-12-17 |
US11556380B2 (en) | 2023-01-17 |
EP3982262A1 (en) | 2022-04-13 |
US20220100560A1 (en) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209488B (zh) | 任务执行方法、装置、设备、***及存储介质 | |
CN111225042B (zh) | 数据传输的方法、装置、计算机设备以及存储介质 | |
WO2020001564A1 (zh) | 一种处理任务的方法、装置及*** | |
CN110134521B (zh) | 资源分配的方法、装置、资源管理器及存储介质 | |
CN111090687B (zh) | 数据处理方法及装置、***、计算机可读存储介质 | |
CN111614549B (zh) | 交互处理方法、装置、计算机设备及存储介质 | |
CN112256425B (zh) | 负载均衡方法及***、计算机集群、信息编辑方法及终端 | |
CN111182083A (zh) | 设备控制方法、装置和边缘设备 | |
CN109697113B (zh) | 请求重试的方法、装置、设备及可读存储介质 | |
CN110704324B (zh) | 应用调试方法、装置及存储介质 | |
CN110392375B (zh) | WiFi网络信道修改方法、终端、服务器及存储介质 | |
CN111061550A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN113190362B (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
CN109861966B (zh) | 处理状态事件的方法、装置、终端及存储介质 | |
CN111290896A (zh) | 服务器压力的测试方法、装置、设备及介质 | |
CN113069760A (zh) | 资源分配方法、装置、计算设备及计算机可读存储介质 | |
CN113843814A (zh) | 机械臂设备的控制***、方法、装置和存储介质 | |
CN112836838A (zh) | 预约请求处理方法、装置、设备及存储介质 | |
CN112988254B (zh) | 管理硬件设备的方法、装置和设备 | |
CN112181915B (zh) | 执行业务的方法、装置、终端和存储介质 | |
CN110569064A (zh) | 接口标识生成方法、装置、设备及存储介质 | |
CN111726848B (zh) | 设备绑定方法、目标启动装置、固定终端及存储介质 | |
CN113935427A (zh) | 训练任务的执行方法、装置、电子设备及存储介质 | |
CN109871291B (zh) | 数据处理方法及装置 | |
CN113220330A (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 |