JCabi を使用して、メソッドの再試行を手動で呼び出したいです。アスペクト指向プログラミングはこれを簡単にするはずですが、私には理解できません。
import com.jcabi.aspects.RetryOnFailure;
public class Example
{
public int j;
@RetryOnFailure(attempts = 4, delay = 100, verbose = true)
public void retryFun() throws Exception
{
j++;
if(j<3)
throw new Exception();
else
return;
}
public static void main(String[] args) throws Exception
{
Example example = new Example();
System.out.println(example.j);
example.retryFun();
System.out.println(example.j);
}
}
jcabi から入手できる唯一の例は、以下の例であり、再試行呼び出しを強制するために例外をスローする方法を示していません。
メソッドに @RetryOnFailure アノテーションを付けます。メソッドで例外が発生した場合、その実行は数回繰り返されます。
public class Resource { @RetryOnFailure(attempts = 2, delay = 10, verbose = false) public String load(URL url) { return url.openConnection().getContent(); } }
例外が発生すると、メソッドは 10 ミリ秒の遅延で 2 回再試行します。