Class Task

java.lang.Object
de.bsvrz.ars.ars.mgmt.tasks.Task
Direct Known Subclasses:
AbstractTask, CronTask

public abstract class Task extends Object
Basisklasse für Hintergrund-Tasks im Archivsystem
  • Field Details

    • _debug

      protected static final de.bsvrz.sys.funclib.debug.Debug _debug
      Logger
    • _shouldTerminate

      protected volatile boolean _shouldTerminate
      Zeigt an, ob der Task beendet werden soll. Der Task bricht dann möglichst schnell an der nächsten sicheren Stelle ab.
  • Constructor Details

    • Task

      public Task(TaskManager taskManagerInterface)
      Erstellt einen neuen Task
      Parameters:
      taskManagerInterface - Archiv-Manager (Kann für Testfälle und ähnliches null sein, allerdings kann es dann passieren, das bestimmte Funktionen nicht funktionieren.)
    • Task

      public Task(PersistenceManager persistenceManager)
      Erstellt einen neuen Task
      Parameters:
      persistenceManager - Persistenz-Manager
  • Method Details

    • start

      public abstract void start()
      Startet den Task.
    • terminateTask

      public void terminateTask()
      Terminiert den Task, indem dafür gesorgt wird, das shouldTerminate() true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe von true den Task zeitnah zu beenden.
    • shouldTerminate

      public boolean shouldTerminate()
      Zeigt an, ob der Task beendet werden soll.
      Returns:
      true falls der Task beendet werden soll.
    • suspendTaskIfNecessary

      public final void suspendTaskIfNecessary()
      Hält den Task an, falls sich das Archivsystem in einem kritischen Zustand befindet. Wird das Archivsystem beendet, wird der Task fortgesetzt, so dass er seine Aufgabe noch vollständig erfüllen kann. shouldTerminate() liefert anschließend true zurück.
    • getName

      public abstract String getName()
    • join

      public abstract void join() throws InterruptedException
      Wartet auf das Beenden des Tasks ähnlich Thread.join().
      Throws:
      InterruptedException - Unterbrochen beim warten
    • isAlive

      public abstract boolean isAlive()
      Gibt true zurück, wenn der Task noch "lebt".
      Returns:
      true, wenn der Task noch "lebt", sonst false
    • isTerminated

      public abstract boolean isTerminated()
      Gibt true zurück, wenn der Task terminiert wurde.
      Returns:
      true, wenn der Task terminiert wurde, sonst false
    • getArchMgr

      public TaskManagerInterface getArchMgr()
      Zentrale Archiv-Verwaltung.
    • getDidTree

      public DataIdentTree getDidTree()
      Gibt die Verwaltung der Datenidentifikationen zurück
    • getPersistenceManager

      public PersistenceManager getPersistenceManager()
      PersistenceManager für den Zugriff auf die Daten des Archivsystems