次の問題があります。
Salesforce から何かを取得するために基本的に使用されるメソッドがいくつかありました。
次に例を示します。
public Map<String, Customer> findSomethingByIds(String[] somethingIds) throws... {
return binding.findSomethingByIds(somethingIds);
}
非常にまれなケース (fe セッションの期限切れなど) でこのメソッドの実行を再試行する必要があったため、いくつかの理由から、これを使用しました。
だから今、私はこのようなものを持っています:
public Map<String, Something> findSomethingByIds(final String[] somethingIds) throws ... {
Map<String, Something> myList = null;
Callable<Map<String, Something>> task = new Callable<Map<String, Something>>() {
@Override
public Map<String, Something> call() throws Exception {
return binding.findSomethingByIds(somethingIds);
}
};
RetriableTask<Map<String, Something>> r = new RetriableTask<>(2, 1000, task);
try {
myList = r.call();
} catch (Exception e) {
// Ex. handling
}
return myList;
}
さて、私のコードにはそのようなメソッドがたくさんあるので、RetriableTask インターフェースを使用したい場合は、上記のものと同様に、これらのメソッドに多くのコードを追加する必要があります。これらのメソッドはすべて異なるものを返すため、ここでは Factory を使用できません (または方法がわかりません)。誰かがこれに対する解決策を知っていますか? どんな助けでも大歓迎です。