2017-02-22 74 views
0

我們已經在jboss EAP 6.4.9.GA和jdk 1.7中部署了commonj workmanager rar。我們使用workmanager引用在多個文件上傳的情況下創建多個線程。我們擁有workmanager的默認配置,最大線程數,核心線程數,隊列長度爲50。 我們在Spring的XML定義的依賴性爲jjoss線程中的commonj workmanager不等待完成

<bean id="taskExecutor" 
class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> 
<property name="workManagerName" value="java:jboss/wm/default-work-manager" /> 
<property name="resourceRef" value="false"/> 
</bean> 

在祈求類,提交工作

@Component 
public class RealtimeServiceInvoker 
@Autowired 
private WorkManagerTaskExecutor taskExecutor; 
public Response execute(..).... 
for(FileBean fileBean:fileList){ 
      SampleWork work = new SampleWork(); 
      work.setFileBean(fileBean); 
      colWorkItems.add(taskExecutor.schedule(work)); 
      requestList.add(work); 
     } 

     taskExecutor.waitForAll(colWorkItems, WorkManager.INDEFINITE); 

我所看到的是TaskExecutor的不是等着要完成的任務,接下來的過程中一步,我們試圖從工作對象中獲取結果,並且拋出異常

令人費解的是,在本地服務器上使用jboss 6.2服務器和jdk 1.7的工作是相同的。

你能告訴我什麼可能是錯的嗎?

我加WorkListener也

taskExecutor.schedule(work,rtWorkListener); 

我得到的日誌在偵聽器workAccepted和WorkStarted。工作管理員不會等待線程完成。如果有任何替代方法來實現等待線程完成使用Listener?

回答

0

我試圖重新安裝commonj workmanager在jboss服務器,它的工作。它可能是服務器的工作管理員的舊版本。但行爲很奇怪。