2011-09-04 30 views
1

我們有一個spring批處理組件,作爲部署在weblogic上的ear應用程序的組件實現。我們希望在Spring批處理組件上實現最大線程約束,而不是整個Web應用程序。所以我們想通過工作經理來實施。在實施之前我有以下疑惑:關於weblogic中webapp組件的工作管理器




1. i can create a global work manager of maximum thread constraint in weblogic console 
2. Refer it in spring batch component. 

我的疑問是,如果我實現上面的方法,將它成爲影響部署在WebLogic上的所有應用程序還是會影響只有當工作管理器是由應用程序所引用的應用程序。

而且我知道,我可以通過web應用程序的weblogic.xml中做這項工作的經理創作,因爲我需要的最大的線程限制僅適用於Web應用程序的一個組件這樣做可能會影響整個Web應用程序。

請建議

回答

0

您可以通過設置在JobLauncher適當的TaskExecutor控制可用於春季批處理作業的線程。例如:

<bean id="jobTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
    <property name="corePoolSize" value ="5" /> 
    <property name="maxPoolSize" value ="10" /> 
    <property name="allowCoreThreadTimeOut" value="true" /> 
    <property name="threadNamePrefix" value="batch-job-thread-" /> 
</bean> 

<bean id="jobLauncher" 
    class="org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
    <property name="jobRepository" ref="jobRepository" /> 
    <property name="taskExecutor" ref="jobTaskExecutor" /> 
</bean> 

上面的例子適用於Spring批處理2.1.8。