2017-08-01 56 views
0

我刚刚在Java中使用Reactor 3进行了反应式编程。我想使用reactor-netty实现一个http服务的客户端。到目前为止,我有非常基本的http请求被完美发送。但是,该服务期望客户遵守费率限制(通过传统的X-RateLimit-LimitX-RateLimit-Remaining等标题通知客户)。使用Reactor实现http速率限制服务重试

我想要在速度限制时自动重试请求,但我不确定什么是最具“惯用”或有效的方式来做到这一点与反应流。我不能简单地睡在我的流线程中,所以我应该看什么呢?从我目前阅读的内容来看,我相信我想研究利用背压来完成这项任务,但我不知道从哪里开始。

对不起,可能是一个广泛的问题。

回答

0

如果速率限制信号来自响应,一个好办法是将其转换为特定的异常,在Mono中通过onError传播,并使用retryWhen运算符进行延迟重试。

reactor-extra神器(的groupId io.projectreactor.addons),你有一个可以用作FunctionretryWhen建设者一个Retry实用工具类。