任务调度方法、系统及装置制造方法及图纸

技术编号:24352713 阅读:18 留言:0更新日期:2020-06-03 01:55
本申请公开了一种任务调度方法、系统及装置。具体方案包括:调度设备在收到客户端发来的任务指令时,生成并发送任务开始消息至消息队列;执行设备从消息队列中抓取到任务开始消息时,生成并发送任务执行消息至消息队列;调度设备从消息队列中抓取到任务执行消息时,向外部服务器发送服务请求,在接收到服务数据时,将服务数据发送给消息队列;执行设备从消息队列中抓取到服务数据时,根据服务数据完成任务,通过消息队列将完成消息发送给调度设备,调度设备在接收到完成消息时,向客户端发送执行结果。本申请可以避免任务服务器耗费大量时间等待外部服务器的响应,提升服务提供方的任务吞吐量,提升系统性能。

Task scheduling method, system and device

【技术实现步骤摘要】
任务调度方法、系统及装置
本申请涉及分布式服务技术,特别是涉及一种任务调度方法、系统及装置。
技术介绍
随着互联网的发展,服务提供方的用户量越来越大,提供的服务越来越复杂,因此广泛采用分布式服务技术实现,将不同的业务功能拆分成若干个任务,不同的任务之间采用远程调用的方式进行交互。然而某些任务的实现时常会强依赖于外部服务器提供的接口服务,当外部服务器的接口响应速度过慢、耗时过长时,执行设备需要耗费大量时间等待外部服务器的响应,从而极大影响服务提供方的任务吞吐量。甚至最终导致耗尽服务提供方的系统资源,无法继续提供服务。
技术实现思路
有鉴于此,本申请的主要目的在于提供一种任务调度方法,该方法可以在执行设备需要依赖外部服务器提供的接口服务的情况下,避免任务服务器耗费大量时间等待外部服务器的响应,从而大幅提升服务提供方的任务吞吐量,提升服务提供方的系统性能。为了达到上述目的,本申请提出的技术方案为:第一方面,本申请实施例提供了一种任务调度方法,包括以下步骤:调度设备在收到客户端发来的任务指令时,生成并发送任务开始消息至消息队列;所述执行设备从所述消息队列中抓取到所述任务开始消息时,生成并发送任务执行消息至所述消息队列,之后继续从消息队列中抓取下一个消息;所述调度设备从所述消息队列中抓取到所述任务执行消息时,向外部服务器发送服务请求,等待接收所述外部服务器返回的服务数据,并在接收到所述服务数据时,将所述服务数据发送给所述消息队列;所述执行设备从所述消息队列中抓取到所述服务数据时,根据所述服务数据完成任务,通过所述消息队列将完成消息发送给所述调度设备,并由所述调度设备在接收到所述完成消息时,向所述客户端发送执行结果。一种可能的实施方式中,所述调度设备在收到客户端发来的任务指令时,所述生成并发送任务开始消息至消息队列的步骤之后,所述方法还包括:根据当前时间与发送任务开始消息的时间确定间隔时长,所述调度设备判断所述间隔时长是否达到预设时长阈值,当达到所述预设时长阈值且未接收到所述完成消息时,将执行失败信息作为所述执行结果发送给所述客户端。一种可能的实施方式中,所述通过所述消息队列将完成消息发送给所述调度设备的步骤为:将所述完成消息通过所述消息队列以广播模式发送给所述调度设备。一种可能的实施方式中,所述调度设备在收到客户端发来的任务指令时,所述生成并发送任务开始消息至消息队列的步骤之前,所述方法还包括:生成任务标识信息;所述任务标识信息携带于所述调度设备和所述执行设备与所述消息队列之间交互的每个消息中。一种可能的实施方式中,所述调度设备在收到客户端发来的任务指令时,所述生成并发送任务开始消息至消息队列的步骤之后,所述方法还包括:根据所述任务标识信息,在主线程管理器中注册任务的主线程上下文;所述调度设备在接收到所述完成消息时,所述向所述客户端发送执行结果的步骤之前,所述方法还包括:根据所述任务标识信息从所述主线程管理器中取出所述主线程上下文。第二方面,本申请实施例提供一种任务调度系统,包括:调度设备、消息队列和执行设备;所述调度设备通过所述消息队列与所述执行设备连接,所述调度设备连接客户端和外部服务器;所述调度设备用于在收到客户端发来的任务指令时,生成并发送任务开始消息至消息队列;用于从所述消息队列中抓取到所述任务执行消息时,向外部服务器发送服务请求,等待接收所述外部服务器返回的服务数据,并在接收到所述服务数据时,将所述服务数据发送给所述消息队列;还用于在接收到所述完成消息时,向所述客户端发送执行结果;所述执行设备用于从所述消息队列中抓取到所述任务开始消息时,生成并发送任务执行消息至所述消息队列,之后继续从消息队列中抓取下一个消息;还用于从所述消息队列中抓取到所述服务数据时,根据所述服务数据完成任务,通过所述消息队列将完成消息发送给所述调度设备;所述消息队列用于在所述调度设备和所述执行设备之间进行每个消息的转发。第三方面,本申请实施例提供一种任务调度装置,应用于调度设备,包括:发送模块,用于生成并发送所述任务开始消息至消息队列;用于向外部服务器发送服务请求;用于从所述消息队列中抓取到所述任务执行消息时,向外部服务器发送服务请求;用于在接收到所述服务数据时,将所述服务数据发送给所述消息队列;还用于在接收到完成消息时,向所述客户端发送执行结果;接收模块,用于从所述消息队列中抓取所述任务执行消息;用于等待接收所述外部服务器返回的服务数据;还用于通过所述消息队列接收所述完成消息。第四方面,本申请实施例还提供一种任务调度装置,应用于执行设备,包括:接收模块,用于从消息队列中抓取任务开始消息;还用于从所述消息队列中抓取服务数据;任务完成模块,用于根据所述服务数据完成任务;发送模块,用于生成并发送任务执行消息至所述消息队列;还用于通过所述消息队列将完成消息发送给调度设备。第五方面,本申请实施例还提供一种任务调度方法,应用于调度设备,包括:调度设备在收到客户端发来的任务指令时,生成并发送任务开始消息至消息队列;所述调度设备从所述消息队列中抓取到所述任务执行消息时,向外部服务器发送服务请求,等待接收所述外部服务器返回的服务数据,并在接收到所述服务数据时,将所述服务数据发送给所述消息队列。第六方面,本申请实施例还提供一种任务调度方法,应用于执行设备,包括:执行设备从所述消息队列中抓取到所述任务开始消息时,生成并发送任务执行消息至所述消息队列,之后继续从所述消息队列中抓取下一个消息;所述执行设备从所述消息队列中抓取到所述服务数据时,根据所述服务数据完成任务,通过所述消息队列将完成消息发送给所述调度设备,并由所述调度设备在接收到所述完成消息时,向所述客户端发送执行结果。第七方面,本申请实施例还提供一种计算机可读存储介质。具体方案为:一种计算机可读存储介质,存储有计算机指令,所述指令被处理器执行时可实现上述第五方面及第五方面中任一种可能的实施方式、或者第六方面及第六方面中任一种可能的实施方式的步骤。第八方面,本申请实施例还提供一种电子设备。具体方案为:一种电子设备,该电子设备包括上述的计算机可读存储介质,还包括可执行所述计算机可读存储介质的处理器。综上所述,本申请提出的一种任务调度方法、系统及装置。本申请在现有技术中实现分布式服务的执行设备基础上增加调度设备和消息队列。调度设备通过消息队列调度执行设备调用外部服务器接口服务的交互过程,使现有技术中的同步的交互过程变为异步的交互过程,将等待外部服务器接口服务相应的成本转移到调度设备,使执行设备在时序上无需依赖和等待外部服务器接口服务的响应,使执行设备可以并行地执行两个以上的任务,从而大幅提升服务提供方的任务吞吐量,提升服务提供方的系统性能。附图说明为了更清楚地说明本申请实施例中的技术方案,本文档来自技高网...

【技术保护点】
1.一种任务调度方法,其特征在于,包括:/n调度设备在收到客户端发来的任务指令时,生成并发送任务开始消息至消息队列;/n执行设备从所述消息队列中抓取到所述任务开始消息时,生成并发送任务执行消息至所述消息队列,之后继续从所述消息队列中抓取下一个消息;/n所述调度设备从所述消息队列中抓取到所述任务执行消息时,向外部服务器发送服务请求,等待接收所述外部服务器返回的服务数据,并在接收到所述服务数据时,将所述服务数据发送给所述消息队列;/n所述执行设备从所述消息队列中抓取到所述服务数据时,根据所述服务数据完成任务,通过所述消息队列将完成消息发送给所述调度设备,并由所述调度设备在接收到所述完成消息时,向所述客户端发送执行结果。/n

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:
调度设备在收到客户端发来的任务指令时,生成并发送任务开始消息至消息队列;
执行设备从所述消息队列中抓取到所述任务开始消息时,生成并发送任务执行消息至所述消息队列,之后继续从所述消息队列中抓取下一个消息;
所述调度设备从所述消息队列中抓取到所述任务执行消息时,向外部服务器发送服务请求,等待接收所述外部服务器返回的服务数据,并在接收到所述服务数据时,将所述服务数据发送给所述消息队列;
所述执行设备从所述消息队列中抓取到所述服务数据时,根据所述服务数据完成任务,通过所述消息队列将完成消息发送给所述调度设备,并由所述调度设备在接收到所述完成消息时,向所述客户端发送执行结果。


2.根据权利要求1所述的方法,其特征在于,所述调度设备在收到客户端发来的任务指令时,所述生成并发送任务开始消息至消息队列的步骤之后,所述方法还包括:
根据当前时间与发送任务开始消息的时间确定间隔时长,所述调度设备判断所述间隔时长是否达到预设时长阈值,当达到所述预设时长阈值且未接收到所述完成消息时,将执行失败信息作为所述执行结果发送给所述客户端。


3.根据权利要求1所述的方法,其特征在于,所述通过所述消息队列将完成消息发送给所述调度设备的步骤为:
将所述完成消息通过所述消息队列以广播模式发送给所述调度设备。


4.根据权利要求1所述的方法,其特征在于,所述调度设备在收到客户端发来的任务指令时,所述生成并发送任务开始消息至消息队列的步骤之前,所述方法还包括:
生成任务标识信息;所述任务标识信息携带于所述调度设备和所述执行设备与所述消息队列之间交互的每个消息中。


5.根据权利要求4所述的方法,其特征在于,所述调度设备在收到客户端发来的任务指令时,所述生成并发送任务开始消息至消息队列的步骤之后,所述方法还包括:
根据所述任务标识信息,在主线程管理器中注册任务的主线程上下文;
所述调度设备在接收到所述完成消息时,所述向所述客户端发送执行结果的步骤之前,所述方法还包括:
根据所述任务标识信息从所述主线程管理器中取出所述主线程上下文。


6.一种任务调度系统,其特征在于,包括:调度设备、消息队列和执行设备;
所述调度设备通过所述消息队列与所述执行设备连接,所述调度设备连接客户端和外部服务器;
所述调度设备用于在收到所述客户端发来的任务指令时,生成并发送任务开始消息...

【专利技术属性】
技术研发人员:秦振海
申请(专利权)人:贝壳技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1