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?