Play Framework - 并行承诺部分可接受的失败

时间:2015-11-03 16:01:03

标签: java playframework promise

我目前尝试并行调用一堆web服务。最后,我想评估所有的回复。因此我使用Promise.sequence。不幸的是,如果其中一个Web调用失败,整个方法就会失败。如果我得到成功电话的响应,我会感到满意。

有没有办法执行Promise.sequence并只检索成功的呼叫?之后,以任何单独的方式处理失败的呼叫将会很好。

1 个答案:

答案 0 :(得分:0)

我现在找到了一个解决方案。对于每个Promise我通过ws.url("http://...").get()创建我定义recover方法,例如

ws.url(theUrl).get().recover((t) -> null)

因此,当通过Promise.sequence处理这些Promise时,不会抛出任何错误(因为它已经被特定WS调用promise的恢复所捕获)。

稍后我只需检查结果是否为null,然后将其从进一步处理中删除。