如何在java中返回try块值,甚至在最后块开始执行之前?



我有一个java代码片段,像

Int methodHitByAPI() {
List returnValue = doSomething();
return returnValue;
finishProcess(returnValue);
}

我的怀疑是,我想执行doSomething()(这个方法被一个post api调用从UI),然后立即返回响应,然后执行finishProcess()。finishProcess()是一个非常大的进程,前端不能等到它完成(HTTP超时)。但这里需要注意的一点是,前端执行doSomething()就足够了,它没有finishProcess(returnValue)的工作;所以我怎么能发送响应UI快速没有finishProcess(returnValue)的任何问题;执行finishProcess(returnValue)是必须在后端,但没有工作与前端

I had try this

try {
returnValue = doSomething();
return returnValue;
}
finally {
finishProcess(returnValue);
}

,但仍

return returnValue;

只在finishProcess(returnValue)之后执行;

这个问题的解决方案是什么?

注意我们可以将返回值发送给前端,并调用另一个APi调用finishProcess()。但事实并非如此

也许一个异步的方法是合适的,像…

ExecutorService executor = Executors.newFixedThreadPool(10);
public List methodHitByAPI() {
List returnValue = doSomething();
executor.submit(()->finishProcess(returnValue));
return returnValue;
}

returnValue将立即返回,但finishProcess将在一个单独的线程中执行。

相关内容

  • 没有找到相关文章

最新更新