de.bsvrz.ars.ars.mgmt.tasks
Class MultiTask
java.lang.Object
java.lang.Thread
de.bsvrz.ars.ars.mgmt.tasks.Task
de.bsvrz.ars.ars.mgmt.tasks.MultiTask
- All Implemented Interfaces:
- SuspendableTask, Runnable
- Direct Known Subclasses:
- QueryTask
public abstract class MultiTask
- extends Task
Abstrakte Basisklasse fuer diejenigen Tasks, die mehr als einmal vorkommen und deswegen von einem TaskMgr verwaltet werden. Die verwalteten Tasks müssen
völlig unabhängig voneinander sein und dürfen auch keine Reihenfolgenabhängigkeiten (wie z.B. die ArchiveTask) beinhalten.
- Author:
- beck et al. projects GmbH, Alexander Schmidt
Method Summary |
void |
doWork(ResultData rd)
Diese Methode weckt den schlafenden Thread auf und führt die zu überschreibende Methode work() aus. |
int |
getTaskIndex()
|
void |
run()
Endlosschleife des Tasks. |
void |
setTaskIndex(int idx)
|
protected abstract void |
work()
Diese Methode ist zu überschreiben, um die konkrete Aufgabe der Task zu implementieren. |
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
taskMgr
protected MultiTaskManager taskMgr
- TaskMgr der diese MultiTask verwaltet
taskIndex
private int taskIndex
resultData
protected ResultData resultData
- Aktueller Datensatz/Anfrage/Auftrag. Muss auf null gesetzt werden wenn kein solcher vorliegt.
MultiTask
public MultiTask(ArchiveManager archiveMgr,
MultiTaskManager tMgr)
- Konstruktor fuer Task.
- Parameters:
tMgr
- Task-ManagerdTree
- DataIdentTreepMgr
- Persistence-Manager
setTaskIndex
public void setTaskIndex(int idx)
getTaskIndex
public int getTaskIndex()
doWork
public void doWork(ResultData rd)
- Diese Methode weckt den schlafenden Thread auf und führt die zu überschreibende Methode work() aus.
- Parameters:
rd
- ResultData: codierter Auftrag
run
public void run()
- Endlosschleife des Tasks. Wartet bis ein neues ResultData mit doWork() zur Bearbeitung uebergeben worden ist und ruft die Methode work() auf.
- Specified by:
run
in interface Runnable
- Overrides:
run
in class Thread
work
protected abstract void work()
- Diese Methode ist zu überschreiben, um die konkrete Aufgabe der Task zu implementieren. In der Methode soll keine weitere Synchronisation stattfinden.