Fork me on GitHub jcabi

24-Oct-2013 0.12

Repeating Java methods on exception

Annotate your methods with @RetryOnFailure annotation and in case of exception in the method its execution will be repeated a few times:

public class Resource {
  @RetryOnFailure(attempts = 2, delay = 10, verbose = false)
  public String load(URL url) {
    return url.openConnection().getContent();
  }
}

In an exception occurs the method will retry two times, with a 10 msec exponential back-off delay between attempts.

Since version 0.7.8 you can change time units used for delays (milliseconds by default). For example, this method will wait for two minutes between attempts:

public class Resource {
  @RetryOnFailure(delay = 2, unit = TimeUnit.MINUTES)
  public String load(URL url) {
    // loading of resource
  }
}

The mechanism is implemented with AOP/AspectJ. Read how to integrate it into your pom.xml.

Copyright © 2012-2013 jcabi.com, All Rights Reserved. Privacy Policy.

site is built by Apache Maven