Package de.bsvrz.ars.ars.mgmt.tasks
Klasse MultiTaskManager
java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
de.bsvrz.ars.ars.mgmt.tasks.QueueTask<de.bsvrz.dav.daf.main.ResultData>
de.bsvrz.ars.ars.mgmt.tasks.MultiTaskManager
Verwaltet eine Warteschlange und eine Liste von Tasks. Ein Auftrag aus der Warteschlage wird dem nächsten freien Task zugewiesen. Wenn kein Task frei ist,
wartet der MultiTaskManager.
-
Feldübersicht
Von Klasse geerbte Felder de.bsvrz.ars.ars.mgmt.tasks.Task
_debug, _shouldTerminate
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungMultiTaskManager
(ArchiveManager archiveMgr, SignalingQueue<de.bsvrz.dav.daf.main.ResultData> inputData, String taskName) Erstellt einen neuen MultiTaskManager -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoid
Fuegt ein MultiTask hinzu und startet ihn, falls der MultitaskManager selbst schon gestartet ist.protected void
cleanUp()
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde.void
int
Gibt die Anzahl der aktuell verwalteten Sub-Tasks zurückboolean
isAlive()
Gibttrue
zurück, wenn der Task aktuell läuftvoid
join()
Wartet auf das Beenden des Tasks nach der Terminierung.void
Entfernt einen Subtask aus der Liste der verfuegbaren Tasks.void
start()
Startet den Thread, der den Task ausführttoString()
protected void
work
(de.bsvrz.dav.daf.main.ResultData step) Vom konkreten Task zu implementierende Methode, die den Auftrag abarbeitet.Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.QueueTask
step, submit, terminateTask
Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
execute, getArchMgr
Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
addTaskStepListener, getName, getState, isTerminated, removeTaskStepListener, setName, taskStepDone
Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.Task
getDidTree, getPersistenceManager, shouldTerminate, suspendTaskIfNecessary
-
Konstruktordetails
-
MultiTaskManager
public MultiTaskManager(ArchiveManager archiveMgr, SignalingQueue<de.bsvrz.dav.daf.main.ResultData> inputData, String taskName) Erstellt einen neuen MultiTaskManager- Parameter:
archiveMgr
- Archiv-ManagerinputData
- Queue, in die von einem anderne THread zu verarbeitende Daten eingefügt werdentaskName
- Name
-
-
Methodendetails
-
start
public void start()Beschreibung aus Klasse kopiert:AbstractTask
Startet den Thread, der den Task ausführt- Setzt außer Kraft:
start
in KlasseAbstractTask
- Siehe auch:
-
addTask
Fuegt ein MultiTask hinzu und startet ihn, falls der MultitaskManager selbst schon gestartet ist.- Parameter:
task
- Kind-Task
-
removeTask
public void removeTask()Entfernt einen Subtask aus der Liste der verfuegbaren Tasks. Es verbleibt immer mindestens ein Task. -
getTaskNum
public int getTaskNum()Gibt die Anzahl der aktuell verwalteten Sub-Tasks zurück- Gibt zurück:
- Anzahl
-
cleanUp
protected void cleanUp()Beschreibung aus Klasse kopiert:AbstractTask
Wird garantiert aufgerufen, nachdem der Task vollständig terminiert wurde. Dieser Code wird im selben Thread ausgeführt, wie der eigentliche TaskTut standardmäßig nichts, kann überschrieben werden um Daten aufzuräumen, Abmeldungen durchzuführen usw.
- Setzt außer Kraft:
cleanUp
in KlasseAbstractTask
-
work
Beschreibung aus Klasse kopiert:QueueTask
Vom konkreten Task zu implementierende Methode, die den Auftrag abarbeitet. Diese Methode sollte nur Intern aufgerufen werden, ist für Testfälle aber public. Normalerweise sollten Aufträge aber Asynchron mit submit() übergeben werden- Angegeben von:
work
in KlasseQueueTask<de.bsvrz.dav.daf.main.ResultData>
- Parameter:
step
- Auftrag/Arbeitsschritt- Löst aus:
InterruptedException
- Thread unterbrochen
-
join
Beschreibung aus Klasse kopiert:AbstractTask
Wartet auf das Beenden des Tasks nach der Terminierung. Beispielcode:task.terminateTask(); // Task soll bei der nächsten Möglichkeit terminieren (asynchroner Aufruf) task.join(); // Auf das terminieren synchron warten
- Setzt außer Kraft:
join
in KlasseAbstractTask
- Löst aus:
InterruptedException
- bei Unterbrechung- Siehe auch:
-
toString
-
isAlive
public boolean isAlive()Beschreibung aus Klasse kopiert:AbstractTask
Gibttrue
zurück, wenn der Task aktuell läuft- Setzt außer Kraft:
isAlive
in KlasseAbstractTask
- Gibt zurück:
true
, wenn der Task aktuell läuft, sonstfalse
-
getObjectsFromDav
public void getObjectsFromDav()
-