de.bsvrz.ars.ars.mgmt.tasks.scheduler
Class TaskScheduler

java.lang.Object
  extended by de.bsvrz.ars.ars.mgmt.tasks.scheduler.TaskScheduler

public class TaskScheduler
extends Object

Diese Klasse verwaltet einen Timer und prüft im Minutentakt, ob die Tasks für Sicherung, Löschen und Nachforndern ausgeführt werden müssen.

Über die public-Methoden können die IntervalWerte gesetzt werden.

Author:
beck et al. projects GmbH, Phil Schrettenbrunner

Nested Class Summary
private  class TaskScheduler.CronTask
          Private Klasse, die sich um den Aufruf von Sichern, Löschen und Nachfordern kümmert.
private  class TaskScheduler.IntervalTask
          Private Klasse, die sich um den Aufruf des spontanen Loeschen kümmert.
 
Field Summary
private  ArchiveManager archiveManager
           
private  TaskScheduler.CronTask backupCronTask
           
private  Date backupLastRun
           
private  TimeIntervalCron backupTimeInterval
           
static DateFormat dateFormat
           
private  TaskScheduler.CronTask deleteCronTask
           
private  Date deleteLastRun
           
private  TimeIntervalCron deleteTimeInterval
           
private static Debug logger
           
private  long lzvInterval
           
private  Date lzvLastRun
           
private  TaskScheduler.IntervalTask lzvTask
           
private static int ONE_MINUTE
           
private  TaskScheduler.CronTask requestCronTask
           
private  Date requestLastRun
           
private  TimeIntervalCron requestTimeInterval
           
private  boolean terminated
           
private  Timer timer
           
 
Constructor Summary
TaskScheduler(ArchiveManager archiveManager)
          Erzeugt einen TaskScheduler mit den angegebenen Interval-Zeiten für den Sicherungs-, Lösch- und Nachforderungstask.
 
Method Summary
 String getBackupIntervals()
          Das Interval als String.
 String getBackupLastRun()
          Liefert das Datum, an dem der Task das letzte mal gestartet wurde.
 String getBackupNextRun()
          Liefert das Datum, an dem der Task das nächste mal gestartet wird.
 String getDeleteIntervals()
          Das Interval als String.
 String getDeleteLastRun()
          Liefert das Datum, an dem der Task das letzte mal gestartet wurde.
 String getDeleteNextRun()
          Liefert das Datum, an dem der Task das nächste mal gestartet wird.
 String getLZVIntervals()
          Das Interval (ausgewertet) als String.
 String getLZVLastRun()
          Liefert das Datum, an dem der Task das letzte mal gestartet wurde.
 String getRequestIntervals()
          Das Interval als String.
 String getRequestLastRun()
          Liefert das Datum, an dem der Task das letzte mal gestartet wurde.
 String getRequestNextRun()
          Liefert das Datum, an dem der Task das nächste mal gestartet wird.
 void setIntervals(String backup, String delete, String request, long lzv)
           
 void start()
          Startet den Timer, der die Tasks steuert
 void terminate()
          TaskScheduler beenden.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dateFormat

public static final DateFormat dateFormat

ONE_MINUTE

private static final int ONE_MINUTE
See Also:
Constant Field Values

logger

private static Debug logger

terminated

private boolean terminated

timer

private Timer timer

lzvInterval

private long lzvInterval

archiveManager

private ArchiveManager archiveManager

backupTimeInterval

private TimeIntervalCron backupTimeInterval

deleteTimeInterval

private TimeIntervalCron deleteTimeInterval

requestTimeInterval

private TimeIntervalCron requestTimeInterval

backupLastRun

private Date backupLastRun

deleteLastRun

private Date deleteLastRun

requestLastRun

private Date requestLastRun

lzvLastRun

private Date lzvLastRun

backupCronTask

private TaskScheduler.CronTask backupCronTask

deleteCronTask

private TaskScheduler.CronTask deleteCronTask

requestCronTask

private TaskScheduler.CronTask requestCronTask

lzvTask

private TaskScheduler.IntervalTask lzvTask
Constructor Detail

TaskScheduler

public TaskScheduler(ArchiveManager archiveManager)
Erzeugt einen TaskScheduler mit den angegebenen Interval-Zeiten für den Sicherungs-, Lösch- und Nachforderungstask.

Parameters:
davConnection - Dav Connection
Method Detail

start

public void start()
Startet den Timer, der die Tasks steuert


setIntervals

public void setIntervals(String backup,
                         String delete,
                         String request,
                         long lzv)

getBackupIntervals

public String getBackupIntervals()
Das Interval als String. Wenn leerer String "", wird der Task nie ausgeführt.

Returns:
Das Interval (ausgewertet) als String

getBackupLastRun

public String getBackupLastRun()
Liefert das Datum, an dem der Task das letzte mal gestartet wurde. Oder einen leeren String, wenn der Task noch nie gestartet wurde.

Returns:
Datum als String

getBackupNextRun

public String getBackupNextRun()
Liefert das Datum, an dem der Task das nächste mal gestartet wird. Oder einen String, der besagt, dass der Task nie gestartet wird (weil die konfigurierten Werte ungültig sind). Berücksichtigt werden Daten, die maximal 1 Jahr und 1 Tag in der Zukunft liegen. Tritt kein Fehler auf und wird trotzdem kein Datum gefunden ist der Rückgabewert "> 1 Jahr".

Returns:
Datum als String

getDeleteIntervals

public String getDeleteIntervals()
Das Interval als String. Wenn leerer String "", wird der Task nie ausgeführt.

Returns:
Das Interval (ausgewertet) als String

getDeleteLastRun

public String getDeleteLastRun()
Liefert das Datum, an dem der Task das letzte mal gestartet wurde. Oder einen leeren String, wenn der Task noch nie gestartet wurde.

Returns:
Datum als String

getDeleteNextRun

public String getDeleteNextRun()
Liefert das Datum, an dem der Task das nächste mal gestartet wird. Oder einen String, der besagt, dass der Task nie gestartet wird (weil die konfigurierten Werte ungültig sind). Berücksichtigt werden Daten, die maximal 1 Jahr und 1 Tag in der Zukunft liegen. Tritt kein Fehler auf und wird trotzdem kein Datum gefunden ist der Rückgabewert "> 1 Jahr".

Returns:
Datum als String

getRequestIntervals

public String getRequestIntervals()
Das Interval als String. Wenn leerer String "", wird der Task nie ausgeführt.

Returns:
Das Interval (ausgewertet) als String

getRequestLastRun

public String getRequestLastRun()
Liefert das Datum, an dem der Task das letzte mal gestartet wurde. Oder einen leeren String, wenn der Task noch nie gestartet wurde.

Returns:
Datum als String

getRequestNextRun

public String getRequestNextRun()
Liefert das Datum, an dem der Task das nächste mal gestartet wird. Oder einen String, der besagt, dass der Task nie gestartet wird (weil die konfigurierten Werte ungültig sind). Berücksichtigt werden Daten, die maximal 1 Jahr und 1 Tag in der Zukunft liegen. Tritt kein Fehler auf und wird trotzdem kein Datum gefunden ist der Rückgabewert "> 1 Jahr".

Returns:
Datum als String

getLZVIntervals

public String getLZVIntervals()
Das Interval (ausgewertet) als String. Wenn leerer String "", wird der Task nie ausgeführt.

Returns:
Das Interval (ausgewertet) als String

getLZVLastRun

public String getLZVLastRun()
Liefert das Datum, an dem der Task das letzte mal gestartet wurde. Oder einen leeren String, wenn der Task noch nie gestartet wurde.

Returns:
Datum als String

terminate

public void terminate()
TaskScheduler beenden. Laufende Tasks laufen aber noch zu Ende. Es werden keine neuen Tasks mehr gestartet.