[发明专利]一种基于反射机制的自动重试装置及方法在审
申请号: | 202010155681.4 | 申请日: | 2020-03-09 |
公开(公告)号: | CN111367723A | 公开(公告)日: | 2020-07-03 |
发明(设计)人: | 魏金雷;陈初兴;徐士强;杨继伟 | 申请(专利权)人: | 山东汇贸电子口岸有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 刘淑风 |
地址: | 250100 山东省济南市*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 反射 机制 自动 重试 装置 方法 | ||
本发明提供一种基于反射机制的自动重试装置及方法,属于软件开发技术领域,其包括:任务信息存储模块,用于在任务失败后,将失败的任务信息存入数据库;任务自动重试模块,当达到时间条件后,应用从数据库中取出任务信息,通过反射机制开始重试;任务处理策略模块,当任务重试失败后,重试次数加1,在时间条件再次到达时继续进行重试,当重试次数达到阈值后,采取相应的处理策略。通过本发明可以给应用提供一个任务重试的方案,让应用可以在任务失败后进行自动重试,当重试次数达到某个设定的值后,会执行相应的处置策略,保证应用间的业务数据一致性及任务处理的可控性。用户也可以通过这个方法,监测应用的任务处理情况,保证业务应用的稳定。
技术领域
本发明涉及软件开发技术领域,具体地说是一种基于反射机制的自动重试装置及方法。
背景技术
软件应用开发从早先的单体架构、SO一种基于反射机制的自动重试装置及方法服务体系,发展到现在的微服务架构,各个微服务应用之间相互独立,实现了结构上的松耦合,业务上靠Restful架构风格统一成一个系统。在应用之间异步处理的业务会通过MQ、接口等方式实现。
在某些业务场景中,一种基于反射机制的自动重试装置及方法应用通知B应用,B应用去执行相应的业务处理,一种基于反射机制的自动重试装置及方法应用的通知只通知一次,那么B应用在收到这个处理通知后开始处理任务,但是有时候因为网络、应用状态等原因,任务处理失败,导致产生与预期不符的结果,造成业务间数据不一致的情况。
发明内容
本发明的技术任务是解决现有技术的不足,给微服务应用异步处理的业务提供一种基于反射机制的自动重试装置及方法。通过本发明的方法可以给应用提供一个任务重试的方案,让应用可以在任务失败后进行自动重试,当重试次数达到某个设定的值后,会执行一些丢弃策略或者通知运维人员等操作,保证应用间的业务数据一致性及任务处理的可控性。用户也可以通过这个方法,监测应用的任务处理情况,保证业务应用的稳定。
本发明解决其技术问题所采用的技术方案是:
1、本发明提供一种基于反射机制的自动重试装置,包括:
任务信息存储模块,用于在任务失败后,将失败的任务信息存入数据库;
任务自动重试模块,当达到时间条件后,应用从数据库中取出任务信息,通过反射机制开始重试;
任务处理策略模块,当任务重试失败后,重试次数加1,在时间条件再次到达时继续进行重试,当重试次数达到阈值后,采取相应的处理策略。
方案优选地,所述任务信息包括任务所在类、执行任务的方法、任务参数、重试次数及其他实际应用中需要的参数。
方案优选地,所述任务信息按照重试次数划分为不同的队列,或按照任务类型进行划分,方便对不同的任务进行相应的处理。
方案优选地,所述数据库为Redis、Mysql数据库。
方案优选地,应用从数据库中取出任务信息,通过反射机制开始重试是指:通过反射机制,调用对应类的方法,并传入任务参数,执行任务,具体包括如下:
获取数据库中存储的失败任务的相关信息,包括处理该任务的对应处理类名、对应处理主方法名及处理该任务的方法参数信息;
通过反射机制和处理类的类名,构造出处理类的对象,通过处理主方法名,生成处理类对象的对应处理主方法对象;
然后调用该方法并传入处理该任务的参数,再执行一次处理任务的程序流程,实现任务的重试。
方案优选地,任务自动重试模块中,应用采用FIFO的方式从数据库中取出任务信息。
方案优选地,任务处理策略模块中,相应的处理策略包括
A、丢弃:将任务丢弃,不再做重试操作
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东汇贸电子口岸有限公司,未经山东汇贸电子口岸有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010155681.4/2.html,转载请声明来源钻瓜专利网。