我的 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
}