Thomas Grötzner: threads zeitgesteuert...

Beitrag lesen

Hallo Markus,

wie schaff ich es dass ein thread 1/4 stündlich gestartet wird und eine bestimmte aktion anstößt?

ich kenne jetzt Deine Umgebung nicht (Du erwähnst Tomcat?) deshalb mal ein Beispiel für "ganz normale" Java SDK Anwendungen.

Das ist eine kleine Anwendung die jede Sekunde die run-Methode aufruft die dann prüft ob es den File c:\test.txt gibt und wenn ja wird eine Msg-Box ausgeben und das Programm beendet sich.

Sollte sich einfach übertragen lassen. TimerTask kann auch zeitgesteuert und in Intervallen, ...

public class FileWatcher extends TimerTask {
 private boolean runon = true;

public static void main(String[] args) {
  FileWatcher fileWatcher = new FileWatcher();

java.util.Timer timer = new java.util.Timer();
  timer.schedule(fileWatcher, 0, 1000); /jede Sekunde ab jetzt

while (fileWatcher.runon) {
   try {
    Thread.sleep(500);
   } catch (Exception e) {
    //nothing to do
   }
  }

timer.cancel();
 }

public boolean cancel() {
  return super.cancel();
 }

public long scheduledExecutionTime() {
  return super.scheduledExecutionTime();
 }

public void run() {
  File file = new File("C:\test.txt");
  if (file.exists()) {
   JOptionPane.showMessageDialog(null, "FILE WURDE ANGELEGT!!!", "ACHTUNG", JOptionPane.WARNING_MESSAGE, null);
   runon = false;
  }
 }
}

Die imports musst Du Dir einfach dazudenken...

Ciao
Thomas Grötzner