Моему 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
}