Diese kleine Java Anwendung soll simulieren wie eine Task verarbeitet werden kann die nicht nur eine zugeordnete Dauer, sondern auch noch eine Priorität hat.
Eine höhere Priorität hat dabei immer Vorrang. Die Dauer spielt eine untergeordnete Rolle.
In diesen Teil wird die Klasse Task und die Enumeration Priority vorgestellt, welche die Grundlage für später bilden.
Im nächsten Teil folgt dann ein Verfahren wie man Tasks nach ihrer Priorität sortieren und dann abarbeiten kann.
Die Enumeration Priority ist dafür da, um die Priorität festzulegen in welcher Reihenfolge die Tasks später abgearbeitet werden.
Die Klasse Task stellt ein Bezeichner, die zugeordnete Priorität sowie die Dauer des Task zur Verfügung.
Mit der process-Funktion wird ein Task solange bearbeitet bis die Dauer den Wert 0 erreicht.
package taskrunner;
import java.util.logging.Logger;
public enum Priority {
LOW, NORMAL, HIGH
}
public class Task {
private static final Logger logger = Logger.getLogger(Task.class.getName());
private String id;
private Priority priority;
private int duration;
public Task(String id, Priority priority, int duration){
this.id = id;
this.priority = priority;
this.duration = duration;
}
public void process(){
while(duration > 0) {
try {
Thread.sleep(duration * 1000L);
duration--;
System.out.println(this);
} catch (InterruptedException e) {
logger.severe(e.toString());
}
}
}
public Priority getPriority(){
return priority;
}
@Override
public String toString(){
return "("+this.id+" - "+this.priority+" - "+this.duration+")";
}
}