草庐IT

completable-future

全部标签

java - CompletableFuture recoverWith 等效?即异常但返回 CompletableFuture<U>

我没有看到处理具有异步结果的异常的明显方法。例如,如果我想重试一个异步操作,我会期待这样的事情:CompletionStagecf=askPong("causeerror").handleAsync((x,t)->{if(t!=null){returnaskPong("Ping");}else{returnx;}});askPong询问Actor的地方:publicCompletionStageaskPong(Stringmessage){FuturesFuture=ask(actorRef,message,1000);finalCompletionStagecs=toJava(sFu

java - 在 Futures.transform 中,使用 Function 和 AsyncFunction 有什么区别

我知道Function的apply方法是同步返回一个对象,AsyncFunction的apply是异步运行的,返回一个Future。你能举个例子说明什么时候更喜欢什么吗。我看到的一个代码片段看起来像这样:Futures.transform(someFuture,newAsyncFunction(){publicBapply(Aa){if(a!=null){returnFutures.immediateFuture(a.getData())}else{returnFutures.immediateFailedFuture(checkException(());}});});既然Async

future 类型更改的 Java 模式

针对预期的类型更改进行编程的最佳方法是什么。比如说,我将来可能不得不使用JodaDateTime而不是JavaDate。由于Java不鼓励像typedef这样的反模式,因此确保将来轻松重构的最佳方法是什么。谢谢。 最佳答案 当然,“单一职责原则”或类似原则以及封装应该有助于限制依赖性蔓延。但是,基本类型的选择是一种架构决策。如果您要更改字符串或整数类型,您会期望更改整个代码。日期差别不大。 关于future类型更改的Java模式,我们在StackOverflow上找到一个类似的问题:

java - 你能用 Future.cancel(true) 中断 BufferedReader.readLine() 吗?

假设我启动了一个线程并且我有这样的东西:...//initiateallthesocketconnectionfuture=executor.submit(newRunnable(){publicvoidrun(){......while((str=in.readLine())!=null){//dosomethinghere}});executor是一个ExecutorService对象,in是一个BufferedReader对象我知道您可以关闭来自不同线程的套接字来中断该线程。但是当我尝试使用future.cancel(true)方法时,即使它返回true,线程似乎仍在运行,有人知

java - 递归取消 allOf CompletableFuture

如果我有CompletableFuturefuture1=service.request(param1);CompletableFuturefuture2=service.request(param2);CompletableFuturemany=CompletableFuture.allOf(future1,future2);当我执行many.cancel()时会发生什么?future1和future2也会取消吗?如果没有,实现这一目标的最干净的方法是什么?我不愿意坚持future1和future2,只是为了能够在我想取消many时取消它们。关于我为什么想要这个的一些背景:当接收到一

java - 面向方面编程的 future

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我是AOP领域的新手。第一次应用AOP概念编写代码时,我很高兴了解方面如何消除应用程序中的横切模式。应用AOP解决横切模式(如安全、日志记录、事务、审计等)的想法让我不知所措。然而,当我第一次向我工作的客户提议使用AOP时,我被告知他们不支持它。有人告诉我AOP意味着更多的维护!如果您的代码更改,您的切入点必须更改。因此,每当您更改应用它们的代码时,您可能必须分析、更改和测试您的方面?对此

使用 CompletableFuture 处理 Java 8 供应商异常

考虑以下代码publicclassTestCompletableFuture{BiConsumerbiConsumer=(x,y)->{System.out.println(x);System.out.println(y);};publicstaticvoidmain(Stringargs[]){TestCompletableFuturetestF=newTestCompletableFuture();testF.start();}publicvoidstart(){SuppliernumberSupplier=newSupplier(){@OverridepublicIntegerg

java - RxJava `Completable.andThen` 不是串行执行?

我有一个用例,我在Completable中初始化了一些全局变量,并在链的下一步中(使用andThen运算符)我使用了这些变量。以下示例详细解释了我的用例假设你有一个类UserclassUser{Stringname;}我有一个像这样的Observable,privateUsermUser;//thisisaglobalvariablepublicObservablestringObservable(){returnCompletable.fromAction(()->{mUser=newUser();mUser.name="Name";}).andThen(Observable.jus

java - Vert.x java List<Futures> 参数化

前几天我遇到了一个关于Vert.xfutures的奇怪问题,它没有破坏代码,但仍然困扰着我。没有参数的Future会导致以下警告:Futureisarawtype.ReferencestogenerictypeFutureshouldbeparameterized添加参数,问题解决:Futurefuture=...当处理一个futures列表时,你也可以参数化它就好了:List>future=...但是CompositeFuture.all()似乎无法处理参数化列表并强制您删除参数。有什么方法可以使参数化的future列表与CompositeFuture一起使用,还是我们只需要忽略该警

java - 如何使用非空字段实现 "complete later"功能?

环境Spring/hibernate/MySQL网络应用问题我有一个多步骤表格,每一步都应该可以保存,以便以后完成。但不完整的步骤可能包含模型所需的字段,导致无法保存模型。我已经尝试或想尝试的事情使字段可为空。使用临时表保存不完整的表格但是..解决方案1破坏了数据库设计,而解决方案2将使我的代码膨胀,包含在临时模型和永久模型之间转换的片段,如果我添加在保存后编辑表单的功能,这将变得很难看。如何无缝且优雅地实现完整的后期功能? 最佳答案 另一种选择是在数据库表complete_edit中有一个boolean列。对于保存期间未首先输入的