春季@Async忽略
我在Spring中异步调用方法时遇到问题,当调用程序是一个嵌入式库,从外部系统接收通知时。代码如下所示:
@Service
public class DefaultNotificationProcessor implements NotificationProcessor {
private NotificationClient client;
@Override
public void process(Notification notification) {
processAsync(notification);
}
@PostConstruct
public void startClient() {
client = new NotificationClient(this, clientPort);
client.start();
}
@PreDestroy
public void stopClient() {
client.stop();
}
@Async
private void processAsync(Notification notification) {
// Heavy processing
}
}
内部有一个线程,在该线程中,它从另一个系统接收通知。它在其构造函数中接受一个,该构造函数基本上是将执行通知实际处理的对象。NotificationClient
NotificationProcessor
在上面的代码中,我已将Spring Bean作为处理器,并尝试使用注释异步处理通知。但是,通知似乎在与 使用的线程相同的线程中处理。实际上,被忽略了。@Async
NotificationClient
@Async
我在这里错过了什么?