如何将Spring Retry
与AsyncRestTemplate
的外部通话相结合?如果不可能,还有另一个支持它的框架吗?
我的用例:
public void doSomething() throws ExecutionException, InterruptedException {
ListenableFuture<ResponseEntity<String>> future = asyncRestTemplate.getForEntity("http://localhost/foo", String.class);
// do some tasks here
ResponseEntity<String> stringResponseEntity = future.get(); // <-- How do you retry just this call?
}
你如何重试这个future.get()
电话?如果外部服务返回404,我想避免再次调用这些任务,只是重试外部调用?我不能用future.get()
包裹retryTemplate.execute()
,因为它实际上不会再调用外部服务。
答案 0 :(得分:0)
您必须将整个In [149]: all([any([compare_clusters(ai, bi) for ai in A]) for bi in B])
Out[149]: True
(或至少模板操作并获取)包装在重试模板中。
修改强>
您可以在未来添加doSomething
,而不是致电get()
。像这样......
ListenableFutureCallback