Повторные вызовы метода общим способом.

Моему 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
}
8
задан BartoszKP 22 June 2014 в 23:08
поделиться