Ich habe eine WM, die Werke in irgendeiner Methode beginnt:Websphere Work für viele Threads verbinden
public void someMethod(Params pararms){
WorkManager wm = (WorkManager) ic.lookup(CONTROL_WORK_MANAGER);
ArrayList<WorkItem> workItems = Lists.newArrayList();
List<Work> works = getSomeWorks();
for (Work work : works) {
workItems.add(wm.startWork(work));
}
//after all works have been started, I just wait for them to be finished using join method:
wm.join(workItems, WorkManager.JOIN_AND, (int) WorkManager.INDEFINITE);
// "other code"
}
someMethod()
von verschiedenen Threads aufgerufen wird, und das Problem ist wm.join()
nicht nur für bestimmte Arbeiten nicht warten abgeschlossen sein , aber für ALLE Arbeiten, die von ALLEN Threads gestartet wurden. Schließlich wird "other code"
ausgeführt, wenn jede einzelne Arbeit in der App abgeschlossen ist.
Ist es so, wie es sein sollte? Wenn ja, kann ich es beheben, so dass jeder wm.join()
wartet nur auf "es" funktioniert zu tun?
WAS-Version ist 8.5.5.11
Vielen Dank!
danke, wirklich hilfreich! – SergeiK