a-s*_*sak 8 java reflection frameworks openframeworks
我的Java应用程序需要在远程调用失败时使用重试逻辑.这些远程呼叫是:
而且,重试逻辑可以具有变化的重试间隔和变化的重试尝试.
我需要一个通用的retry()实现,它可以根据调用的位置进行适当的方法调用.下面是我正在寻找的简单代码示例.我知道我们可以尝试使用java反射来实现这一点,但是,是否有一个可以读取使用的框架或开源?
try {
ClassA objA = remoteServiceA.call(paramA1, paramA2, ...);
} catch (Exception e){
ClassA objA = (ClassA)retry(remoteService, listOfParams, ..); // generic method call
}
..
try {
ClassB objB = remoteServiceB.call(paramB1, paramB2, ...);
} catch (Exception e){
ClassA objB = (ClassB)retry(remoteService, listOfParams, ..); // generic method call
}
Run Code Online (Sandbox Code Playgroud)
yeg*_*256 11
如前所述,您应该使用AOP和Java注释.我建议使用jcabi-aspects(我是开发人员)的读取机制:
@RetryOnFailure(attempts = 3, delay = 5)
public String load(URL url) {
return url.openConnection().getContent();
}
Run Code Online (Sandbox Code Playgroud)
另请阅读此博客文章:http://www.yegor256.com/2014/08/15/retry-java-method-on-exception.html