我试图使用两个@Async
带注释的方法在App Engine上异步调用两个单独的servlet。 App Enging上运行的代码不使用Spring。它只是使用普通的Java Servlet API。调用servlet的代码使用的是Spring。
调用方法的@Async
似乎不起作用。每个方法都被调用,并按正常顺序返回。 (method-> return,method-> return)
我对每种公开方法都有@Async
个注释
我在调用方法的类上有@EnableAsync
注释。
这是两个单独的类。没有涉及静态类。
我不确定这是因为App Engine不支持Servlet 3.0,还是我没有正确配置@Async
属性。
提前致谢!
答案 0 :(得分:0)
不幸的是,GAE不支持this issue上显示的Serlvet 3.0规范。你可以显然转移到托管虚拟机并使用它但沙盒GAE暂时不会使用3.0。
答案 1 :(得分:0)
问题解决了!
问题在于我在哪里放置 xmlns:task =“http://www.springframework.org/schema/task”和任务:注释驱动条目。
我们的应用程序中有几个XML文件(导入其他XML文件)。最初,我将这些条目放在XML中,该XML包含包含 @Async 注释的bean的配置。为了让它工作,我不得不把它放在 applicationContext.xml
中调用是在不同的线程上异步进行的,App Engine正在处理它们。