commonj workmanager в потоках jboss не ожидает завершения

Мы развернули commonj workmanager rar в jboss EAP 6.4.9.GA и jdk 1.7. Мы используем ссылку на workmanager для создания нескольких потоков в случае нескольких загрузок файлов. У нас есть конфигурация по умолчанию для workmanager со значением 50 для максимальных потоков, основных потоков, длины очереди. Мы определили зависимость в весеннем XML как

<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>

В классе Invoker, представив работу

@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?

1 ответ

Я попытался переустановить commonj workmanager на сервере jboss, и это сработало. Это могла быть старая версия workmanager на сервере. Но поведение было странным.

Другие вопросы по тегам