Package de.bsvrz.ars.ars.mgmt.tasks
Klasse QueueTask<T>
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<T>
- Bekannte direkte Unterklassen:
ArchivConfig
,DeletePermanentlyTask
,MultiTask
,MultiTaskManager
,SerializeTask
,SingleTask
Abstrakte Basisklasse für die abstrakten Task-Basisklassen
SingleTask
und MultiTask
.
Ein QueueTask ist ein Thread, der laufend eine bestimmte Aktion ausführt. Er ähnelt einem Executors.newSingleThreadExecutor()
, die einzelnen Aufgaben
werden aber nicht als Runnable o.ä. übergeben, sondern der Task holt sich selbst die durchzuführenden Arbeitsschritte aus einer Queue. Die Klasse, auf der
ein Task arbeitet wird über den generischen Typ T definiert.
-
Feldübersicht
Von Klasse geerbte Felder de.bsvrz.ars.ars.mgmt.tasks.Task
_debug, _shouldTerminate
-
Konstruktorübersicht
KonstruktorenModifiziererKonstruktorBeschreibungprotected
QueueTask
(ArchiveManager archiveMgr, SignalingQueue<T> queue) -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungfinal void
step()
Implementiert die beliebige wiederholt auszuführende Aufgabevoid
Fügt einen abzuarbeitenden Auftrag in die Queue ein.void
Terminiert den Task.protected abstract void
Vom konkreten Task zu implementierende Methode, die den Auftrag abarbeitet.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, cleanUp, getName, getState, isAlive, isTerminated, join, removeTaskStepListener, setName, start, taskStepDone
Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.Task
getDidTree, getPersistenceManager, shouldTerminate, suspendTaskIfNecessary
-
Konstruktordetails
-
QueueTask
-
-
Methodendetails
-
submit
Fügt einen abzuarbeitenden Auftrag in die Queue ein.- Parameter:
step
- Datensatz
-
terminateTask
public void terminateTask()Terminiert den Task. Diese Methode fügt zusätzlich in die Queue einen speziellen Token ein, mit dem der Aufruf von_queue.take()
in derstep()
-Methode aufgeweckt wird, falls die Methode dort gerade auf einen neuen Auftrag warten.- Setzt außer Kraft:
terminateTask
in KlasseTask
-
step
Beschreibung aus Klasse kopiert:RepeatingTask
Implementiert die beliebige wiederholt auszuführende Aufgabe- Angegeben von:
step
in KlasseRepeatingTask
- Löst aus:
InterruptedException
- Thread unterbrochen
-
work
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- Parameter:
step
- Auftrag/Arbeitsschritt- Löst aus:
InterruptedException
- Thread unterbrochen
-