【发布时间】:2014-12-28 23:11:32
【问题描述】:
我的情况是,我有一组对象,每个对象都必须运行一个昂贵的方法,大约需要 5-10 秒才能完成。
如何并行运行所有方法并定期检查状态?
我尝试将 @Async 注释与 Future 响应一起使用,但没有任何改变。
public static void populate(String marketId) {
//irrelevant code removed
List<Company> companies = mongo().find(new Query(c), Company.class);
List<Future> futures = new ArrayList<Future>();
for(Company comp : companies) {
futures.add(comp.updateData(market));
}
}
@Async
public Future<Boolean> updateData(Market market) {
//do my slow logic here
return new AsyncResult(false);
}
ThreadPoolTaskExecutor是要走的路吗?
【问题讨论】:
标签: java spring spring-mvc multitasking