异步任务执行方法和系统与流程

文档序号:36013784发布日期:2023-11-17 09:09阅读:39来源:国知局
异步任务执行方法和系统与流程

本发明涉及大数据处理及分布式处理,可用于金融领域,尤其涉及一种异步任务执行方法和系统。


背景技术:

1、现有异步任务执行框架一般是由一个管控节点接收外部提交的任务,然后从分布式应用程序协调服务软件(zookeeper)处获取所有可用的工作节点的负载信息,根据负载信息按照预设调度算法获取从所有可用的工作节点中选择出的工作节点地址,把任务发送至选择出的工作节点上;选择出的工作节点读取队列中的任务并执行任务。这种异步任务执行方法,工作节点(相当于任务执行器)需要将自己注册到管控节点,管控节点再将任务分配到任务执行器,管控节点与任务执行器的耦合较重,无论是管控节点还是任务执行器都不易扩缩。


技术实现思路

1、有鉴于此,本发明提供一种异步任务执行方法和系统,以解决上述提及的至少一个问题。

2、为了实现上述目的,本发明采用以下方案:

3、根据本发明的第一方面,提供一种异步任务执行方法,所述方法包括:接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号;将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;在执行器空闲时从预先订阅的所述消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;在所述异步任务执行完成后将执行结果写入所述数据库。

4、作为本发明的一个实施例,上述方法中将所述异步任务传入任务队列中的消息队列包括:将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。

5、作为本发明的一个实施例,上述方法中在执行器空闲时从所述任务队列获取所述异步任务包括:在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。

6、作为本发明的一个实施例,上述方法还包括:将执行器启动时的启动注册消息发送到所述任务队列中的心跳消息队列中。

7、作为本发明的一个实施例,上述方法还包括:订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取已领取的异步任务,并将所述已领取的异步任务重新提交至所述任务队列的消息队列中。

8、作为本发明的一个实施例,上述方法中接收应用提交的异步任务包括:通过方法、http接口或分布式服务的方式接收应用提交的异步任务。

9、作为本发明的一个实施例,上述方法中通过方法的方式接收应用提交的异步任务包括:所述应用利用jar包,在应用开发阶段引入应用的java工程,通过直接编写java程序调用方法提交异步任务;所述通过http接口的方式接收应用提交的异步任务包括:所述为应用提供http接口,所述应用通过http方式调用接口提交异步任务;所述通过分布式服务的方式接收应用提交的异步任务包括:为应用提供分布式服务,所述应用通过调用所述分布式服务提交异步任务。

10、根据本发明的第二方面,提供一种异步任务执行系统,所述系统包括:任务触发器、任务队列和执行器,所述任务触发器接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号,然后将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;所述执行器在执行器空闲时从预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;在所述异步任务执行完成后将执行结果写入所述数据库。

11、作为本发明的一个实施例,上述任务触发器将所述异步任务传入任务队列中的消息队列包括:任务触发器将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。

12、作为本发明的一个实施例,上述执行器在执行器空闲时从所述任务队列获取所述异步任务包括:执行器在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。

13、作为本发明的一个实施例,上述执行器启动时将启动注册消息发送到所述任务队列中的心跳消息队列中。

14、作为本发明的一个实施例,上述任务触发器还包括异常任务触发器,其用于订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取所述执行器已领取的异步任务,并将所述执行器已领取的异步任务重新提交至所述任务队列的消息队列中。

15、作为本发明的一个实施例,上述任务触发器接收应用提交的异步任务包括:所述任务触发器通过方法、http接口或分布式服务的方式接收应用提交的异步任务。

16、作为本发明的一个实施例,上述任务触发器通过方法的方式接收应用提交的异步任务包括:所述应用利用jar包,在应用开发阶段引入应用的java工程,通过直接编写java程序调用方法向所述任务触发器提交异步任务;所述任务触发器通过http接口的方式接收应用提交的异步任务包括:所述任务触发器为应用提供http接口,所述应用通过http方式调用接口提交异步任务;所述任务触发器通过分布式服务的方式接收应用提交的异步任务包括:所述任务触发器为应用提供分布式服务,所述应用通过调用所述分布式服务提交异步任务。

17、根据本发明的第三方面,提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述计算机程序时实现上述方法的步骤。

18、根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

19、由上述技术方案可知,本发明提供的异步任务执行方法和系统,由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。另外本申请异步任务执行过程中的所有任务状态信息都由独立的数据库所记录,而接收任务的任务触发器、任务队列以及负载任务执行的执行器都与任务的状态信息所解耦,因此可以进一步方便地根据需求扩展任务触发器、任务队列以及任务执行器。



技术特征:

1.一种异步任务执行方法,其特征在于,所述方法包括:

2.如权利要求1所述的异步任务执行方法,其特征在于,所述将所述异步任务传入任务队列中的消息队列包括:将所述任务队列中的消息队列按照优先级进行分类,基于所述异步任务设定的优先级将所述异步任务传入对应优先级的消息队列。

3.如权利要求2所述的异步任务执行方法,其特征在于,所述在执行器空闲时从所述任务队列获取所述异步任务包括:在执行器空闲时依据优先级高低先从高优先级队列中消费异步任务。

4.如权利要求3所述的异步任务执行方法,其特征在于,所述方法还包括:将执行器启动时的启动注册消息发送到所述任务队列中的心跳消息队列中。

5.如权利要求4所述的异步任务执行方法,其特征在于,所述方法还包括:订阅所述任务队列中的心跳消息队列,当获取到执行器的启动注册消息时,监控所述执行器的心跳,若超过预设时间阈值未收到所述执行器的心跳信息,则从所述数据库中获取已领取的异步任务,并将所述已领取的异步任务重新提交至所述任务队列的消息队列中。

6.如权利要求1所述的异步任务执行方法,其特征在于,所述接收应用提交的异步任务包括:通过方法、http接口或分布式服务的方式接收应用提交的异步任务。

7.如权利要求6所述的异步任务执行方法,其特征在于,通过方法的方式接收应用提交的异步任务包括:应用利用jar包,在应用开发阶段引入应用的java工程,通过直接编写java程序调用方法提交异步任务;

8.一种异步任务执行系统,其特征在于,所述系统包括:任务触发器、任务队列和执行器,所述任务触发器接收应用提交的异步任务,并为所述异步任务分配全局唯一任务编号,然后将所述异步任务传入任务队列中的消息队列并将所述任务编号写入数据库;所述执行器在执行器空闲时从预先订阅的消息队列中获取所述异步任务,并在所述数据库中写入与所述异步任务的任务编号相对应的执行器编号;在所述异步任务执行完成后将执行结果写入所述数据库。

9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。


技术总结
本发明提供了一种异步任务执行方法和系统,涉及大数据处理及分布式处理技术领域,方法包括:接收应用提交的异步任务,并为异步任务分配全局唯一任务编号;将异步任务传入任务队列中的消息队列并将任务编号写入数据库;在执行器空闲时从预先订阅的消息队列中获取异步任务,并在数据库中写入与异步任务的任务编号相对应的执行器编号;在异步任务执行完成后将执行结果写入所述数据库。本申请由执行器通过订阅任务队列中的消息队列,然后在执行器空闲时从所述消息队列中获取异步任务并执行,因此无需额外设置管控节点来调节执行器的任务执行,对执行器进行了解耦,因此可以根据应用场景配置不同规模的执行器,满足实际业务的需求。

技术研发人员:陈元曦,陈建军
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1