Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

pinc.scheduler
Class Scheduler  view Scheduler download Scheduler.java

java.lang.Object
  extended bypinc.scheduler.Scheduler
All Implemented Interfaces:
IScheduler

public class Scheduler
extends java.lang.Object
implements IScheduler

Title: Pinc

Description: Die Klasse enthält zwei Tabellen. Die erste zu Verwaltung von zukünftigen Jobs die sortiert nach ihrer Startzeit sind. Eine zweite Tabelle enthält Jobs die zur Zeit aktiv sind. Diese Klasse implementiert die Klasse runable und läuft in einem eigenen Thread. In einem bestimmten Intervall(im ConfigFile spezifiziert) wird die Tabelle mit den gestarteten Jobs auf termination überprüft. Anschließen werden die zu startenden Jobs überprüft, die Prozesse gestartet und in die andere Tabelle(mit gleicher Nummer) übertragen. In einem größeren Intervall werden die zukünftigen Job für die nächste Zeiteinheit (Stunde etc) in den Vector nextJobs geschrieben.

Copyright: Copyright (c) 2003

Company: dn03

Version:
1.0

Nested Class Summary
 class Scheduler.MainScheduler
          führt Scheduling Aufgaben und startet den Job
 
Field Summary
private  ActiveList activeList
           
private  java.lang.String activeListFile
           
private  boolean flag
           
private  long intervall1
           
private  long intervall2
           
private  Logfile logfile
           
private  Scheduler.MainScheduler main
           
private  java.lang.Thread mainThread
           
private  JobList nextJobs
           
private  RunningJobs runningJobs
           
 
Constructor Summary
Scheduler(java.lang.String _activeListFile, java.lang.String _file, long Intervall1, long Intervall2)
          Constructor erzeugt die Instanz und speichert den Parameter in das Attribut der Klasse.
 
Method Summary
 void addJob(Job j)
           
 void checkRunningJobs()
          Geht die Liste der laufenden Jobs durch und überprüft diese auf Terminierung.
 void executeJobs()
          Diese Methode extrahiert die zu startenden Jobs und started diese durch den Aufruf von startJob.
 IActiveList getActiveList()
           
 IRunningJobs getRunningJobsList()
           
 void killJob(int Number)
           
 void killJob(Job j)
           
 void start()
           
 void startJob(Job j)
          Diese Methode prüft die Abhängigkeiten des zu startenden Jobs, und startet den Job, kopiert das Job Element in den Vector runningJobs und löscht sie aus der nextJobs.
 void stop()
           
 void updateNextJobList(java.util.Date nextIntervall)
          Diese Methode updatet die nextJob Liste in welcher die Jobs aufgezählt werden, welche in Zukunft gestartet werden.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nextJobs

private JobList nextJobs

runningJobs

private RunningJobs runningJobs

activeList

private ActiveList activeList

logfile

private Logfile logfile

intervall1

private long intervall1

intervall2

private long intervall2

main

private Scheduler.MainScheduler main

activeListFile

private java.lang.String activeListFile

mainThread

private java.lang.Thread mainThread

flag

private boolean flag
Constructor Detail

Scheduler

public Scheduler(java.lang.String _activeListFile,
                 java.lang.String _file,
                 long Intervall1,
                 long Intervall2)
          throws pinc.PincException
Constructor erzeugt die Instanz und speichert den Parameter in das Attribut der Klasse. Mit dem Parameter String wird ein FileWriterObject erstellt welches im Attribut gespeichert wird.

Method Detail

stop

public void stop()
          throws pinc.PincException

start

public void start()

checkRunningJobs

public void checkRunningJobs()
                      throws pinc.PincException
Geht die Liste der laufenden Jobs durch und überprüft diese auf Terminierung. Sollte einer der Jobs terminiert sein so checkt er das StartJob Array in der Job-Instanz startet diese(durch Methodenaufruf startJob) gegebenenfalls und löscht anschließen den terminierten Job aus der Liste. Der ganze Vorgang wird in das Logfile geschrieben.


executeJobs

public void executeJobs()
                 throws pinc.PincException
Diese Methode extrahiert die zu startenden Jobs und started diese durch den Aufruf von startJob.


getActiveList

public IActiveList getActiveList()
Specified by:
getActiveList in interface IScheduler

startJob

public void startJob(Job j)
              throws pinc.PincException
Diese Methode prüft die Abhängigkeiten des zu startenden Jobs, und startet den Job, kopiert das Job Element in den Vector runningJobs und löscht sie aus der nextJobs. Sollte der Job auf die Terminierung eines Jobs angewiesen sein, so wird in der Instanz des „Vaterjobs“ (Job.addStartJob) die Vectornummer dieses Jobs hinzugefügt. Anschließend wird das executionsdatum dieses Jobs in weite Ferne gesetzt.


updateNextJobList

public void updateNextJobList(java.util.Date nextIntervall)
                       throws pinc.PincException
Diese Methode updatet die nextJob Liste in welcher die Jobs aufgezählt werden, welche in Zukunft gestartet werden. Dazu werden die Einträge in der ActiveJobs durchgegangen und gegebenenfalls in die nextJob(nextJob. add) Liste übertragen. Auch in der Lister der ActiveJobs Klasse muss die Startzeit der Jobs aktualisiert werden.


killJob

public void killJob(Job j)
             throws pinc.PincException

killJob

public void killJob(int Number)
             throws pinc.PincException
Specified by:
killJob in interface IScheduler

getRunningJobsList

public IRunningJobs getRunningJobsList()
Specified by:
getRunningJobsList in interface IScheduler

addJob

public void addJob(Job j)
Specified by:
addJob in interface IScheduler