2016-02-25 35 views
1

我想使用退避重试机制 发送一个http请求列表。有什么方法可以标记“只能在重试后成功”的任务吗?

有没有什么方法可以标记(带标志)只有重试后才能成功的请求?

我看到几个解决方案:

1)https://github.com/rholder/guava-retrying

2)https://developers.google.com/api-client-library/java/google-http-java-client/backoff

但看到没有办法这个萎靡不振的整合。在这些库中的任何其他库或想法?

我试图重写此方法,但也没有办法返回指示标志

@Beta 
public class HttpBackOffUnsuccessfulResponseHandler implements HttpUnsuccessfulResponseHandler { 


    * {@inheritDoc} 
    * 
    * <p> 
    * Handles the request with {@link BackOff}. That means that if back-off is required a call to 
    * {@link Sleeper#sleep(long)} will be made. 
    * </p> 
    */ 
    public final boolean handleResponse(
     HttpRequest request, HttpResponse response, boolean supportsRetry) throws IOException { 
    if (!supportsRetry) { 
     return false; 
    } 
    // check if back-off is required for this response 
    if (backOffRequired.isRequired(response)) { 
     try { 
     return BackOffUtils.next(sleeper, backOff); 
     } catch (InterruptedException exception) { 
     // ignore 
     } 
    } 
    return false; 
    } 

回答

0

退房Failsafe。如果您希望将请求标记为成功,则可以使用事件处理程序。

相关问题