当前位置: 首页 > 知识库问答 >
问题:

Spring Async-超时后处理程序的CompletableFuture

宇文元明
2023-03-14

我有一个场景,使用Spring Async从REST API调用外部web服务。它返回一个可完成的未来,很明显,我们可以等待一段时间,直到外部异步操作完成。当我超时时,主线程返回状态202。我想处理异步进程何时完成,以便需要更新数据库中的字段。我们从哪里得到这个处理器,或者如何实现?因为主线程已经返回了。

之前在同一网站上发布了一个问题。通过对主请求Spring的回调,为外部服务实现异步过程,但现在我要让它更具体

共有1个答案

红甫
2023-03-14

我想我不完全理解你的问题,但这可能就是你想要的吗?

    cf.thenAcceptAsync(resultOfCompletableFuture -> {
        //update a field in db with resultOfCompletableFuture
    });
 类似资料:
  • 我们有一个使用Disruptor框架的系统,它有五个注册阶段来实现EvenetHandler。 阶段按顺序工作,因此请求只能在第一阶段完成时移动到第二阶段,该移动由Disruptor内部维护。 我们对第三阶段有问题,这是瓶颈,需要大量时间,因为它进行不同的HTTP调用并将响应存储在请求对象中。 因此,我们希望在第三阶段花了一段时间之后,将请求(无论有什么响应)提前到第四和第五阶段。 如何超时任何特

  • 如何更正此代码?谢谢

  • 问题内容: 我正在urllib2的urlopen中使用timeout参数。 我如何告诉Python,如果超时到期,应该引发自定义错误? 有任何想法吗? 问题答案: 在极少数情况下要使用。这样做会捕获可能很难调试的 任何 异常,并且会捕获包括和在内的异常,这些异常会使您的程序恼人。 最简单的说,您会发现: 以下内容应捕获连接超时时引发的特定错误:

  • 问题内容: 我正在尝试在控制器中设置超时,以便如果在250毫秒内未收到响应,它将失败。我将单元测试的超时设置为10000,这样就可以满足此条件,有人可以指出正确的方向吗?(编辑,我试图在不使用$ http服务的情况下实现这一点,我知道该服务提供超时功能) (编辑- 我的其他单元测试失败了,因为我没有在它们上调用timeout.flush,现在我只需要在promiseService.getPromi

  • 问题内容: 我试图用一个批量一些 KTable 值,并送他们。似乎30秒钟超出了使用者超时间隔,在此间隔之后,Kafka认为该使用者已失效并释放了分区。 我尝试提高 轮询 和 提交间隔 的频率来避免这种情况: 不幸的是,这些错误仍在发生: (很多) 其次是: 显然,我需要更频繁地将心跳发送回服务器。怎么样? 我的拓扑是: 该 KTable 是关键,每30秒分组值。在 Processor.init(

  • 前言 sender的run 调用done方法,并传入TimeoutException