问题标签 [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.
java - 使用线程分割一个巨大的文件
我有一个包含超过 5 亿行的文本文件,其结构如下:
我正在编写一个方法,给定“lat”和“lon”它应该返回路径。我想把这个巨大的文件分成“sec0,sec1,sec2,sec3,...,secn”的部分,然后为每个部分创建线程来寻找那个“lat”和“lon”,当一个线程返回路径,其他线程将被杀死。
我的问题是,我的方法有效吗?什么是此类问题的最佳解决方案。
asynchronous - 带有 Spring Data Jpa 和 Java8 CompletableFuture 的 findAll() 中的 NonUniqueResultException
我正在尝试使我的 Jpa 存储库异步,请参阅https://github.com/spring-projects/spring-data-examples/tree/master/jpa/java8
这是我的代码:
但是当我运行我的测试时,抛出一个 NonUniqueResultException,我真的不知道为什么......这是完整的堆栈跟踪:
我不得不提到我是 Java8 的新手,也许问题只是我以错误的方式使用 CompletableFuture。但是在上面的链接中,测试是有效的,我的几乎是一样的。
提前感谢所有想法和建议!
PS:我正在使用 hibernate-entitymanager 5.0.0.Final、Spring 4.2.0.RELEASE、spring-data-jpa 1.8.2.RELEASE。
java - 引用 CompletableFuture 中的字段,该字段可以再次是 CompletableFuture :java
我正在调用返回 CompletableFuture 的服务。
输出结构如下。
我想打电话给服务,并想继续执行我的工作,直到名字出现。
就像是,
在上述方法中,我需要等到我futureOutput
的准备好,即使我以后才需要它。
我寻找类似下面的方法。
processName
我可以将from的签名更改为String
toCompletableFuture<String>
但不更改CompletableFuture<Output>
为 asOutput
对该方法没有任何意义。
有哪些建议的方法来获得未来参考,这是另一个未来的领域。
java - 将可完成的将来的异常映射到不同的异常类型?
我正在使用 java 8 的可完成期货,我希望能够接受未来抛出的异常并将其转换为不同的异常。
一旦发生异常,我尝试过的所有复合材料似乎都会短路。
例如,使用 scala 未来,我可以执行以下操作:
我希望能够在 java 中的未来复合块中模仿它。这可能吗?
java - java.util.concurrent.CompletableFuture#allOf 的目的是什么?
如果有Collection<CompletableFuture<MyResult>>
,我希望将其转换为CompletableFuture<Collection<MyResult>>
. 因此,转换后我只有一个未来,可以MyResult
使用CompletableFuture
likethenApply
等方法轻松地在集合上编写业务逻辑thenAccept
。但是CompletableFuture#allOf
有结果类型Void
,所以在调用它之后我得到“没有结果”。例如,我无法从返回的未来中检索(据我了解)与Collection<CompletableFuture<MyResult>>
.
我怀疑CompletableFuture#allOf
只是归还 Future ,毕竟它已经完成了收集。所以我可以在循环转换中调用CompletableFuture#allOf(...).isDone
然后manually
(!),我的假设是否正确?Collection<CompletableFuture>
CompletableFuture<Collection>
java - 如何用spring处理CompletionStage?
如何配置 spring 以使用CompletionStage
返回类型?考虑一个代码:
我得到了 404,但我在日志中看到该方法被触发。如果我这样更改签名:
我看到成功的 json 数组。
如何CompletionStage
使用 spring (4.2.RELEASE) 制作作品?
更新
对于测试,我编写了以下方法:
它有效。哦
我已经测试了这个版本的未来:
有点敏捷,但是……有效!
所以我原来的方法有以下逻辑:
- 迭代集合
- 通过 AsyncRestTemplate 对每个集合元素进行异步调用
- 调用集合中的每个 CompletableFuture
thenApply
(转换结果)thenCompose
(使用 AsyncRestTemplate 进行新的异步调用)thenApply
(转换结果)- 最后,我将转换列表调用为 Completable,如此处所述。
看来未来转型是错误的。会不会是未来的连锁经营太长了?有任何想法吗?
java - java-8 CompletableFuture 回调调用的不合理延迟
第一个回调调用非常快,其余的延迟约 50 毫秒(非附加),我不知道为什么。
输出:
编辑:其他更让我吃惊的案例。我认为 CompletableFuture 可能不是问题。
如果我添加这一行:
我得到这个输出,没有变化:
但是,如果我改为添加这一行:
延迟消失了!!
java - 将可完成的未来列表转换为列表的一个可完成的未来
我有一个CompletableFuture
实例列表。
如何将它们转换为这样的未来:
java - 序列化 CompletableFuture 字节码
我想创建一个CompletableFuture
链,将其作为字节码/参数序列化到磁盘,并在将来的某个时候再次运行它。例如:
当然,这个棘手的事情是,即使字节码存储在当前的类文件中(可以用 检索Class.getResource()
),我也需要在链中设置的最终变量也被持久化。
(参见上面的 for 循环final int var = ii;
)
我未来的目标实际上是在具有大多数相同类文件(但不是创建链的类文件)的从属进程上运行链我会编写字节码/数据,将其重新加载到从属进程上,然后运行。
如前所述,我相信在实例化时在循环中创建的最终变量是其中的棘手部分。IE。
pos = pos.thenApply( (s)->{ return s+" plus"+
val
;} );
有没有人建议如何做到这一点?
java - 带有经过时间信息的 CompletableFuture
我需要访问有关异步方法执行时间的信息。所以,我正在尝试扩展CompletableFuture功能。这是我使用装饰器模式的实现:
shouldReturnElapsedTime
提取ContinuousCompletableFuture
变量的第一个测试工作正常,但其他测试shouldOperateWithOwnExecutionTime
失败。同时,我更喜欢在我未来的代码中看到它既不提取ContinuousCompletableFuture
变量。
我认为我的问题在于错误的thenAcceptBothAsync
方法使用。
有什么建议么?