【发布时间】:2014-04-30 18:00:37
【问题描述】:
我正在尝试使用 Spring 3.0 提供的 @Async 注释使方法异步
我已经关注了
在我的module-context.xml 中包含以下内容
<task:executor id="initiateContactCreation" pool-size="2-10" queue-capacity="5"/>
<task:annotation-driven executor="initiateContactCreation" />
带有@Async的注解方法
@Async
private void initiateContactCreation(String fromUserId, List<String> toUsers){
logger.info("Inside Async method for contact creation");
ContactDetails contactDetails = new ContactDetails();
contactDetails.setUserId(fromUserId);
contactDetails.setContactEmailIds(toUsers.toArray(new String[toUsers.size()]));
this.contactsAndDirSvc.addContact(contactDetails);
logger.info("Returning from Async method for contact creation");
}
但我看到该方法不会立即返回控制权。
我的记录器显示
来自initiateContactCreation 的日志,然后来自addContact 的日志(PS。执行此方法需要时间,我不希望它同步执行),然后从我调用initiateContactCreation 的方法记录日志
我做错了什么?
【问题讨论】:
标签: java spring asynchronous