一种异步程序处理方法、系统及计算机设备与流程
- 国知局
- 2024-07-31 23:18:46
本申请涉及计算机程序处理,具体涉及一种异步程序处理方法、系统及计算机设备。
背景技术:
1、随着计算机信息技术的飞速发展,现代软件系统中对于并发和异步处理的需求日益增加,异步程序执行不仅能够提高系统的响应性和吞吐量,还能有效避免资源阻塞,提高资源利用率。
2、虽然程序的异步执行与处理广泛应用于各种计算机系统中,然而传统的异步程序执行系统往往缺乏对执行节点的有效监控和管理:一方面,传统异步任务执行时资源协调和任务执行常常紧密耦合,这限制了系统的灵活性和可扩展性,当任务执行节点出现故障时,缺乏有效的监控机制、故障转移和恢复机制,一旦执行节点出现宕机或其他异常情况,整个服务可能会受到严重影响。另一方面,现有的处理系统在执行和管理上通常采用静态策略,难以适应复杂多变的业务需求,导致任务执行效率低下或失败。因此,如何高效、有序、稳定地管理并执行这些异步程序,确保资源的合理分配和有效利用,成为了当前技术领域的一个亟待解决的问题。
技术实现思路
1、基于此,本申请针对上述问题,提出了一种异步程序处理方法及系统,旨在高效、有序、稳定地管理并执行异步程序,并确保资源的合理分配和有效利用。
2、本申请一方面提供一种异步程序处理方法,其特征在于,所述方法包括:
3、创建相互独立的资源协调服务和程序执行服务;
4、将待执行异步程序封装添加到预设消息队列,并为所述异步程序设置补偿重试标识;
5、基于所述程序执行服务创建一个或多个服务实例;
6、根据所创建的服务实例执行所述异步程序,并向所述资源协调服务发送异步程序的心跳信息;
7、所述资源协调服务根据所述异步程序的心跳判断所述异步程序执行是否宕机;
8、若宕机,则修改所述异步程序的补偿重试标识,并触发宕机重试。
9、优选地,所述基于所述异步程序服务的服务实例执行所述异步程序,包括:
10、根据所述异步程序的执行时长设置分布式锁的超时时间参数;
11、获取所述异步程序的补偿重试标识;
12、若所述补偿重试标识为第一值,则向分布式锁服务请求获取分布式锁后,执行所述异步程序业务逻辑;
13、若所述补偿重试标识为第二值,则释放分布式锁及缓存数据,并重新请求分布式锁后执行所述异步程序业务逻辑。
14、优选地,所述所述资源协调服务根据所述异步程序的心跳判断异步程序执行是否宕机,包括:
15、查询正在执行的异步程序,读取并检测对应异步程序的心跳信息;
16、若在预设的时间窗内没有接收到正在执行异步程序的心跳,则监控对应服务实例的容器;
17、若对应服务实例的容器异常,则确定当前异步程序宕机。
18、优选地,所述方法还包括:
19、获取宕机异步程序id,将所述宕机异步程序重新添加到队列中;
20、将所述宕机异步程序转移到未宕机目标服务实例进行重试。
21、优选地,将所述宕机异步程序转移到未宕机目标服务实例进行重试,包括:
22、为每个未宕机服务实例的分配权重,并计算各未宕机服务实例的累积权重:
23、a[i] = a[i-1] + wi,a[0] = 0;
24、生成随机数r并对随机数进行取模:i=r mod a[n];
25、匹配得到目标服务实例k:k=min{i∣i≤a[i],1≤i≤n};
26、其中,k是满足条件的第一个服务实例的索引,wi为第i个服务实例的权重,n为未宕机服务实例的数量;
27、更新所述目标服务实例权重;
28、将所述宕机异步程序转到所述目标服务实例重试执行。
29、进一步地,所述为每个未宕机服务实例的分配权重,包括:
30、
31、其中,wi为第i个服务实例的权重,rij第i个服务实例在第j个资源维度上的量化评分,为第j个资源维度的权重,ti、li、ei分别为第i个实例的平均响应时间、负载量、历史故障的量化评分,α、β、γ分别对应的权重。
32、优选地,所述宕机重试包括:
33、记录宕机异步程序重试次数;
34、若所述重试次数小于预设阈值,则根据指数退避算法设置时间间隔执行重试:
35、,ti为第i次重试的时间间隔,b为预设指数底数,c为调节系数;
36、若所述重试次数大于等于预设阈值,终止所述异步程序执行,生成日志信息并发送异步程序执行异常通知。
37、本申请第二方面提供一种计算机异步程序处理系统,所述系统包括:
38、服务创建模块,用于创建相互独立的资源协调服务模块和程序执行服务模块;
39、消息队列模块,用于将待执行异步程序封装添加到预设消息队列,并为所述异步程序设置补偿重试标识;
40、所述程序执行服务模块,用创建一个或多个服务实例,并执行所述异步程序,及向所述资源协调服务模块发送所述异步程序的心跳信息;
41、所述资源协调服务模块,用于根据所述异步程序的心跳判断异步程序执行是否宕机,若宕机,则修改对应异步程序的补偿重试标识,并触发宕机重试。
42、本申请三方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述任一项所述方法的步骤。
43、本申请第四方面提供一种计算机终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一项所述方法的步骤。
44、本申请上述提供的异步程序处理方案,基于资源协调-程序执行设计模式,建立相互独立的资源协调服务和程序服务分别监控和执行程序,使得资源协调服务和程序执行在逻辑上和物理上解耦,资源协调服务独立执行来监控检测程序执行的心跳,可以及时发现潜在的问题及宕机情况,并基于服务高可用性迅速将宕机程序分配到到其他未宕机的服务实例上再次重试,确保了任务的连续性和完整性,有助于增强系统的健壮性、可维护性和可观察性,提高了系统的稳定性、处理效率、用户体验。进一步地,本申请的方案在异步程序宕机重试时,通过负载均衡优化算法进行匹配目标服务实例,确保任务或程序根据实例的处理能力进行分配,有效均衡了各个服务实例的负载,优化了资源的使用效率。
技术特征:1.一种异步程序处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,基于所述异步程序服务的服务实例执行所述异步程序,包括:
3.根据权利要求1所述的方法,其特征在于,所述资源协调服务根据所述异步程序的心跳判断异步程序执行是否宕机,包括:
4.根据权利要求1所述的方法,其特征在于,所述触发宕机重试包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述宕机异步程序转移到未宕机目标服务实例进行重试,还包括:
6.根据权利要求5所述的方法,其特征在于,所述为每个未宕机服务实例的分配权重,包括:
7.根据权利要求1至6任一项所述的方法,其特征在于,所述宕机重试包括:
8.一种计算机异步程序处理系统,其特征在于,所述系统包括:
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
技术总结本申请涉及计算机程序处理技术领域,具体涉及一种异步程序处理方法、系统及计算机设备。本申请方案通过基于资源协调‑程序执行设计模式,建立相互独立的资源协调服务和程序服务分别监控和执行程序,使得资源协调服务和程序执行在逻辑上和物理上解耦,资源协调服务独立执行来监控检测程序执行的心跳,可以及时发现潜在的问题及宕机情况,并基于服务高可用性迅速将宕机程序分配到到其他未宕机的服务实例上再次重试,确保了任务的连续性和完整性,有助于增强系统的健壮性、可维护性和可观察性,提高了系统的稳定性、效率、用户体验。技术研发人员:曾于川,惠鹏程,檀建军,郑翔天受保护的技术使用者:上海甄零科技有限公司技术研发日:技术公布日:2024/7/29本文地址:https://www.jishuxx.com/zhuanli/20240730/196946.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。