问题标签 [completable-future]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-services - Spring Async - 超时完成后带有处理程序的 CompletableFuture
我有一个场景,我使用 Spring Async 从我的 REST API 调用外部 Web 服务。它返回一个 CompletableFuture ,很明显我们可以等待一段时间,直到外部异步操作完成。当我发生超时时,主线程返回状态 202。我想在异步过程完成时进行处理,以便我需要更新 db 中的字段。我们从哪里得到这个处理程序或者我如何实现这个?因为主线程已经返回。
之前在同一个问题上发布了一个问题。 通过回调主请求实现外部服务的异步流程 - Spring 但现在我让它更具体
java - CompletionStage:为什么在 CompletableFuture 中定义了 allOf 或 anyOf
我有一个使用接口CompletionStage的框架,我很好奇为什么在CompletableFuture中定义了辅助方法anyOf
或allOf
发现。
似乎他们应该在接口而不是实现上操作?
到目前为止,我对 CompletionStage 界面非常不满意。是否有其他 Java 库兼容 CompletionStage 但有人可以推荐不同的超集接口?
或者也许是一些用额外的辅助方法编写的库来使用 CompletionStage ?
java - CompletionStage:在异常块内返回 CompletionStage
CompletionStage
如果发生异常,有没有办法返回一个新的?
的 APIexceptionally
似乎不允许您这样做。有没有解决的办法?
基本上我想为这个案子做flatMap
( thenCompose
)exceptionally
intellij-idea - 实现 CompletableFuture 时出现错误提示“CompletableFuture(Object) 在 CompletableFuture 中具有私有访问权限”
我正在执行CompletableFuture
如下但收到错误消息
CompletableFuture(Object)
有私人访问权CompletableFuture
我希望解决方案来克服这个错误?
java - 带有集合或列表的 Java 8 CompletableFuture.allOf(...)
Java 8 有一个函数,当所有给定的期货都完成时,CompletableFuture.allOf(CompletableFuture<?>...cfs)
它会返回一个完成的函数。CompletableFuture
但是,我几乎总是不处理CompletableFuture
s 数组,而是处理List<CompletableFuture>
. 当然,我可以使用该toArray()
方法,但最终不得不在数组和列表之间不断地来回转换有点痛苦。
如果有一种巧妙的方法来CompletableFuture<List<T>>
换取 a List<CompletableFuture<T>>
,而不是不断地投入中间数组创建,那将是非常好的。有谁知道在 Java 8 中执行此操作的方法?
java - 我是否应该在每个服务方法上加上 @Async 以使我的应用程序在 Spring 中完全支持异步?
我有一个非常简单的控制器,如下所示:
和服务:
FoodRepository 只不过是一个 JpaRepository 。
到目前为止,流程将是:Controller --> Service --> Repository
现在,我希望我的所有 Rest API 都支持异步。在这种情况下,服务调用存储库来查询数据。我应该将@Async 注释放在FoodService 的方法中以使查询任务异步吗?
在扩展中,我是否应该将@Async注释放在我的所有服务方法以使我的应用程序完全支持异步?
据我所知,Spring 中的 @Async 注解支持异步,而Callable和DeferredResult做同样的事情,那我应该选择哪一个呢?
java - 基本任务的 Java 8 并发最简单规范形式
我有两个问题: 1.Callable
在 Java 8 中将 a 作为任务运行、捕获和处理结果的最简单规范形式是什么?2. 在下面的示例中,保持主进程打开直到所有任务完成的最佳/最简单/最清晰的方法是什么?
这是我到目前为止的示例——这是 Java 8 中最好的方法还是有更基本的方法?
有没有更简单、更清晰的 Java-8 方法来做到这一点?以及如何消除有System.in.read()
利于更好的方法?
java - 使用 ExecutorService 的 Java 应用程序永远不会关闭
我正在尝试编写一个程序,将工作分配给几个 java 工作线程。问题是当我从命令行运行它时它永远不会返回。我没有得到我的提示,最终必须 ctrl-c 关闭程序。
我已将其简化为以下简单的案例
这个程序的输出是
就是这样。它挂在那里。没有提示。如果我删除 ExecutorService.submit 行,我会得到
程序自然关闭。
我需要在 ExecutorService 上执行一些我没有正确执行的清理任务吗?我假设 .get() 调用加入了线程。不是这样吗?