gpt4 book ai didi

java - 异步运行 Spring 类

转载 作者:行者123 更新时间:2023-11-29 03:33:23 25 4
gpt4 key购买 nike

我在一个从不同 API 下载数据的 Spring 应用程序中工作。为此,我需要一个与 API 交互的类 Fetcher 以获取所需的数据。这个类的一个要求是它必须有一个方法来开始获取和一个方法来停止它。此外,它必须异步下载所有内容,因为用户必须能够在获取数据时与仪表板进行交互。

实现此目标的最佳方法是什么?我一直在阅读任务执行器和 Spring 的不同注释来安排任务并异步执行它们,但这种解决方案似乎无法解决我的问题。

最佳答案

异步任务执行是您所追求的,自 Spring 3.0 以来,您可以直接在要异步运行的方法上使用注释来实现这一点。

根据您是否有兴趣从异步过程中获取结果,有两种实现方式:

@Async
public Future<ReturnPOJO> asyncTaskWithReturn(){
//..
return new AsyncResult<ReturnPOJO>(yourReturnPOJOInstance);
}

或不:

@Async
public void asyncTaskNoReturn() {
//..
}

在前一种方法中,由您的ReturnPOJOInstance 对象实例传送的计算结果存储在org.springframework.scheduling.annotation.AsyncResult<V> 的实例中。作为返回,它实现了 java.util.concurrent.Future<V>调用者稍后可以使用它来检索计算结果。

要在 Spring 中激活上述功能,您必须在 XML 配置文件中添加:

<task: annotation-driven />

连同所需的任务命名空间。

关于java - 异步运行 Spring 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16823668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com