Java 有没有办法对一个被调用N次但知道何时处理所有调用的方法使用@Async?
我一直在试图找出这是否可行(使用spring) 我基本上想做的是: 我有一个进程,它必须在许多记录和数据库记录之间进行huuuge比较,因此,因为我想避免超时异常,所以我正在考虑使用我的方法并调用一个async。方法,该方法将实际执行每个比较并转到数据库以查看它是否存在 它工作得很好,但是,我不知道的是,如何从我的第一个方法(我在那里调用aysnc方法)知道这个方法的所有调用是否都完成了 有没有办法做到这一点 我的异步方法如下所示:Java 有没有办法对一个被调用N次但知道何时处理所有调用的方法使用@Async?,java,spring,asynchronous,Java,Spring,Asynchronous,我一直在试图找出这是否可行(使用spring) 我基本上想做的是: 我有一个进程,它必须在许多记录和数据库记录之间进行huuuge比较,因此,因为我想避免超时异常,所以我正在考虑使用我的方法并调用一个async。方法,该方法将实际执行每个比较并转到数据库以查看它是否存在 它工作得很好,但是,我不知道的是,如何从我的第一个方法(我在那里调用aysnc方法)知道这个方法的所有调用是否都完成了 有没有办法做到这一点 我的异步方法如下所示: @Async Future<String> my
@Async
Future<String> myMethod(someParams){
someCode...
}
@Async
未来myMethod(someParams){
一些代码。。。
}
谢谢。实现这一点的一个方法是在引擎盖下获得由
@Async
方法使用的ExecutorService
。例如,您可以将自己的executor服务作为@Async(“customExecutorServiceBeanName”)
传递
一旦你有了它,你可以简单地调用然后调用那个executor服务实例(可能是从一些
@PreDestroy
方法中调用)。谢谢!对不起,你没有这方面的代码示例吗?看看ExecutorService
javadoc;shutdownAndAwaitTermination()
示例方法似乎很好地涵盖了这一点: