Java 有没有办法对一个被调用N次但知道何时处理所有调用的方法使用@Async?

Java 有没有办法对一个被调用N次但知道何时处理所有调用的方法使用@Async?,java,spring,asynchronous,Java,Spring,Asynchronous,我一直在试图找出这是否可行(使用spring) 我基本上想做的是: 我有一个进程,它必须在许多记录和数据库记录之间进行huuuge比较,因此,因为我想避免超时异常,所以我正在考虑使用我的方法并调用一个async。方法,该方法将实际执行每个比较并转到数据库以查看它是否存在 它工作得很好,但是,我不知道的是,如何从我的第一个方法(我在那里调用aysnc方法)知道这个方法的所有调用是否都完成了 有没有办法做到这一点 我的异步方法如下所示: @Async Future<String> my

我一直在试图找出这是否可行(使用spring)

我基本上想做的是:

我有一个进程,它必须在许多记录和数据库记录之间进行huuuge比较,因此,因为我想避免超时异常,所以我正在考虑使用我的方法并调用一个async。方法,该方法将实际执行每个比较并转到数据库以查看它是否存在

它工作得很好,但是,我不知道的是,如何从我的第一个方法(我在那里调用aysnc方法)知道这个方法的所有调用是否都完成了

有没有办法做到这一点

我的异步方法如下所示:

@Async 
Future<String> myMethod(someParams){
    someCode...
}
@Async
未来myMethod(someParams){
一些代码。。。
}

谢谢。

实现这一点的一个方法是在引擎盖下获得由
@Async
方法使用的
ExecutorService
。例如,您可以将自己的executor服务作为
@Async(“customExecutorServiceBeanName”)
传递


一旦你有了它,你可以简单地调用然后调用那个executor服务实例(可能是从一些
@PreDestroy
方法中调用)。

谢谢!对不起,你没有这方面的代码示例吗?看看
ExecutorService
javadoc;
shutdownAndAwaitTermination()
示例方法似乎很好地涵盖了这一点: