Мы развернули commonj workmanager rar в jboss EAP 6.4.9.GA и jdk 1.7. Мы используем ссылку workmanager для создания нескольких потоков в случае загрузки нескольких файлов. У нас есть настройка по умолчанию для рабочего менеджера с 50 значением для максимальных потоков, основных потоков, длины очереди. Мы определили зависимость весной XML, какcommonj workmanager в потоках jboss не ждет завершения
<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 не ждет задачи, которые должны быть завершены, и в течение следующего шаг, мы пытаемся извлечь результат из объекта Work, и это исключение исключения
То, что озадачивает то же самое, работает на локальном сервере с сервером jboss 6.2 и jdk 1.7.
Не могли бы вы сообщить, что может быть неправильным?
Я добавил WorkListener также
taskExecutor.schedule(work,rtWorkListener);
Я получаю журналы в Listener для workAccepted и WorkStarted. Рабочий менеджер не ждет завершения потока. Если какой-либо альтернативный способ реализовать ожидание завершения потоков с помощью Listener?