繁体   English   中英

如何使用AsyncHttpClient在错误的HTTP代码上实现重试功能?

[英]How implements a retry feature on bad http code with AsyncHttpClient?

我需要调用一个URL,并且有可能该调用返回错误的HTTP代码,例如404、500等。当我收到这些错误时,我想实现一个重试功能:一个新的调用将每小时进行一次,最多10次。

我使用async-http-client库执行POST调用async。

你有什么主意吗?

在此先感谢您的帮助。

值得考虑使用Spring Retry功能。

该API的构造与您要重试的内容无关,并且与重试策略,补偿,限制重试次数等有关。

如果您使用的是Java 7/8,则另一种可能性是AsyncRetryExecutor 例如

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
RetryExecutor executor = new AsyncRetryExecutor(scheduler).
    retryOn(SocketException.class).
    withExponentialBackoff(500, 2).     //500ms times 2 after each retry
    withMaxDelay(10_000).               //10 seconds
    withUniformJitter().                //add between +/- 100 ms randomly
    withMaxRetries(20);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM