[发明专利]一种任务处理方法及装置有效
申请号: | 202011024978.3 | 申请日: | 2020-09-25 |
公开(公告)号: | CN112099935B | 公开(公告)日: | 2023-09-01 |
发明(设计)人: | 王平;徐婷;柯登科 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52;G06F11/30 |
代理公司: | 北京华夏泰和知识产权代理有限公司 11662 | 代理人: | 沈园园;孙剑锋 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 处理 方法 装置 | ||
本申请涉及一种任务处理方法及装置,方法包括:接收任务处理请求,任务处理请求为同步操作请求;将任务处理请求中的待处理任务分解为多个子任务;将多个子任务分别发送至对应的RMQ队列,其中每个RMQ队列对应一个子任务;通过各个RMQ队列分别执行对应的子任务,并监听每个RMQ队列的执行结果,执行结果包括成功或者失败;当监听到RMQ队列中的目标RMQ队列的执行结果为失败时,通过重试机制对目标RMQ队列中的子任务执行重试操作,直到所有RMQ队列中分别对应的子任务的执行结果均为成功为止。本申请根据执行结果确定执行重试操作的RMQ队列,实现仅对未执行成功的处理对象进行重试,保证了任务最终能够成功执行的同时,不会造成资源浪费。
技术领域
本申请涉及数据处理领域,尤其涉及一种任务处理方法及装置。
背景技术
随着互联网的发展,很多业务都可以在网上进行,比如电子金融业务、电商业务等。一般地,可以由流程引擎将业务所涉及的一个或多个执行步骤进行编排,构成相应的业务流程,再按照业务流程顺序执行业务活动,从而实现业务目标。
对于一些业务场景,需要多个执行步骤同步完成,当每个步骤执行完成后,整个业务才算成功,如果某一个执行步骤失败,则所有执行步骤重新执行,例如:有同步进行的10个执行步骤,9个执行步骤都成功了,1个执行步骤不成功,这时候需要先回滚到初始状态,9个成功的步骤都需要重新再执行一次。这样既造成了资源的浪费,也降低了处理效率。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种任务处理方法、装置、电子设备及存储介质。
根据本申请实施例的一个方面,提供了一种任务处理方法,包括:
接收任务处理请求,所述任务处理请求为同步操作请求;
将所述任务处理请求中的待处理任务分解为多个子任务;
将所述多个子任务分别发送至对应的RMQ队列,其中每个RMQ队列对应一个子任务;
通过各个所述RMQ队列分别执行对应的子任务,并监听每个RMQ队列的执行结果,所述执行结果包括成功或者失败;
当监听到所述RMQ队列中的目标RMQ队列的执行结果为失败时,通过重试机制对所述目标RMQ队列中的子任务执行重试操作,直到所有RMQ队列中分别对应的子任务的执行结果均为成功为止。
进一步的,所述通过各个所述RMQ队列分别执行对应的子任务,并监听每个RMQ队列的执行结果,包括:
通过所述RMQ队列将所述子任务发送至对应的处理对象,其中每个RMQ队列对应一个处理对象;
基于所述RMQ队列监听所述处理对象执行所述子任务反馈的执行结果,所述执行结果包括成功或者失败。
进一步的,所述当监测到所述RMQ队列中的目标RMQ队列的执行结果为失败时,通过重试机制对所述目标RMQ队列中的子任务进行重新执行,直到所有RMQ队列中分别对应的子任务的执行结果均为成功为止,包括:
将监听到所述执行结果为失败的RMQ队列作为目标RMQ队列;
确定所述目标RMQ队列对应的目标处理对象的当前状态;
根据所述当前状态确定所述目标RMQ队列的优先级;
根据所述优先级对所述目标RMQ队列中的子任务执行重试操作,直到所有RMQ队列中分别对应的子任务的执行结果均为成功为止。
进一步的,所述方法还包括:
确定所述目标RMQ队列执行重试操作的执行次数;
获取预设重试时间设置规则;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011024978.3/2.html,转载请声明来源钻瓜专利网。