首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >容器管理环境中使用Spring的异步任务执行

容器管理环境中使用Spring的异步任务执行
EN

Stack Overflow用户
提问于 2016-04-27 07:29:14
回答 1查看 539关注 0票数 0

我希望在web应用程序中异步运行几个任务。我的问题是,在容器管理环境中应该使用任务执行器的哪个Spring实现。

我参考了Spring文档中的章节,发现很少有选择。

我考虑过的一个选择是WorkManagerTaskExecutor.这非常简单,并且与我目前正在使用的IBM服务器无缝地工作,但这非常特定于IBM和Oracle Weblogic服务器。我不想像在某些测试和本地区域中使用Jetty容器那样,将我的代码具体地绑定到一个特定的实现上&这种实现在Jetty中运行代码会产生问题。

其他选项(如SimpleThreadPoolTaskExecutor )似乎不适合在容器管理环境中利用线程池,我不想自己创建新线程。

你能给我建议一下怎么做吗?任何指向示例实现的指针都会有很大帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-30 08:57:38

和往常一样,这要看情况。如果您依赖于容器的线程管理,并且希望能够在它的管理接口上设置线程池,或者如果您是应用程序,而不是容器中的唯一应用程序,或者使用诸如为EJB或JMS设置线程池优先级之类的特定特性,则应该添加对WorkManagerTaskExecutor的支持并使其可配置。如果没有,您可以使用任何您想要的,因为在最后线程只是线程。因为Spring是一个IOC容器,所以您可以这样做。为了随时随地使用相同的应用程序,我不建议在每个应用程序版本中更改XML配置。更确切地说

  1. 使用配置文件配置来设置执行器类型,在java配置中返回正确的bean类型。如果使用Jetty,则应该对线程池大小进行配置,以便能够对其进行调优。
  2. 使用弹簧引导类自动配置,它通常依赖类路径上的可用类(@ConditionalOnClass)。如果您的weblogic或websphere特定类可用,或者任何其他特定于容器的东西,如env变量,则可以创建WorkManagerTaskExecutor。

有了这两种情况,你可以在任何地方部署相同的战争。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36883160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档