我想使用 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 毫秒的延迟。