Spring @Async Executor

时间:2012-01-05 23:21:49

标签: java spring

无论如何能为不同的类指定不同的执行程序吗?似乎有点限制必须为每个异步任务使用一个Executor。

2 个答案:

答案 0 :(得分:3)

从Spring 3.2 / 3.1.2开始,您现在可以通过以下方式限定@Async用途,就像使用@Transactional一样:

@Async("beanNameOrQualifierValue")
public void someOp() {
   ...
}

您可以查看以下问题SPR-6847(3.2)/ SPR-9443(3.1.2)了解更多详情。

答案 1 :(得分:1)

您可以拥有相同任务执行者类型(池)的多个实例。但你不能拥有不同的游泳池。

例如

  <task:executor id="executor" pool-size="10"/>

ThreadPoolTaskExecutor

的10个实例

   <task:executor id="executorWithPoolSizeRange"
               pool-size="5-25"
               queue-capacity="100"/>

有关详细信息,请参阅弹簧参考 @see Spring Reference Chapter 25 Task Execution and Scheduling