我希望在web应用程序中异步运行几个任务。我的问题是,在容器管理环境中应该使用任务执行器的哪个Spring实现。
我参考了Spring文档中的这章节,发现很少有选择。
我考虑过的一个选择是WorkManagerTaskExecutor.这非常简单,并且与我目前正在使用的IBM服务器无缝地工作,但这非常特定于IBM和Oracle Weblogic服务器。我不想像在某些测试和本地区域中使用Jetty容器那样,将我的代码具体地绑定到一个特定的实现上&这种实现在Jetty中运行代码会产生问题。
其他选项(如SimpleThreadPoolTaskExecutor )似乎不适合在容器管理环境中利用线程池,我不想自己创建新线程。
你能给我建议一下怎么做吗?任何指向示例实现的指针都会有很大帮助。
发布于 2016-04-30 08:57:38
和往常一样,这要看情况。如果您依赖于容器的线程管理,并且希望能够在它的管理接口上设置线程池,或者如果您是应用程序,而不是容器中的唯一应用程序,或者使用诸如为EJB或JMS设置线程池优先级之类的特定特性,则应该添加对WorkManagerTaskExecutor的支持并使其可配置。如果没有,您可以使用任何您想要的,因为在最后线程只是线程。因为Spring是一个IOC容器,所以您可以这样做。为了随时随地使用相同的应用程序,我不建议在每个应用程序版本中更改XML配置。更确切地说
有了这两种情况,你可以在任何地方部署相同的战争。
https://stackoverflow.com/questions/36883160
复制相似问题