2009-02-26 11 views
0

Ich möchte einen bestimmten Stück Code nach 5 Minuten ausgeführt werden. Wie kann ich das mit Java machen?Start Timer in Java

 out.println("<HTML>"); 
     out.println("<head>"); 
     //out.println("<frame>"); 
     out.println("<frameset rows=\"80%, *\" frameborder=\"0\" border=\"0\" framespacing=\"0\">"); 
     out.println("<frame src=\"DataCenterImage.html\" target=\"DisplayFrame\">"); 
     //out.println("Hai"); 
     out.println("<frame src= \"unlock.html\" target=\"DisplayFrame\">"); 
     out.println("</frameset>"); 
     out.println("</head>"); 
     out.println("</HTML>"); 

Ich möchte das oben genannte nach 15 Minuten ausgeführt werden.

+0

Versuchen Sie, nach 5/15 Minuten einige Daten an einen Client in einem Servlet zu senden? In diesem Fall helfen Ihnen die untenstehenden (ansonsten korrekten) Antworten nicht weiter. Bitte fragen Sie nach Ihrem Problem, nicht nach Ihrer Meinung nach der Lösung. –

+0

Ich denke, das Bearbeiten von Sternenblau hat das Problem unklarer gemacht. Warum hat er (Sternenblau) all das Zeug zum Drucken von HTML hinzugefügt, was nicht in der ursprünglichen Frage war? – Nicolai

Antwort

0

könnten Sie verwenden:

Thread.sleep(900000); 
execute code... 

Die sleep() Methode nehmen Millisekunden als Argumente, daher die große Zahl für 15 Minuten.

+0

Sie müssen eine Klasse haben, die httpservlet erweitert und runnable Thread implementiert –

+0

Nein, mit Thread.sleep sagen Sie dem aktuellen Thread, für eine bestimmte Zeit zu warten. Sie müssen nichts implementieren. – boutta

3

In Java 1.5 und höher Sie die java.util.concurrent Paket verwenden können

ScheduledExecutorService scheduler = Executors.newSingleThreadedScheduledExecutor(); 
ScheduledFuture<?> f = scheduler.schedule(new Runnable() { 
    public void run() { 
     //Code to be executed here 
    } 
}, 15L, TimeUnit.MINUTES); 

Sie die Ausführung so abbrechen:

f.cancel(false); 
+0

in dem Code wo hast du 15 Minuten erwähnt –

+0

Ihre Frage sagt "5 Minuten". Wenn es 15 ist, bearbeite ich den Code –

+0

Ich stimme zu, dass Quarz übertrieben ist. Deshalb habe ich Ihre Antwort auf +1 gesetzt. Ich habe immer noch meine Antwort auf Vollständigkeit gegeben – Nicolai

1

Der Quartz Rahmen kann auch hilfreich sein für Sie.

Von ihrer Website:

Quarz ist ein voll funktionsfähige Open-Source-Job-Scheduling-System, das mit integriert werden kann, oder an der Seite von praktisch jede J2EE oder J2SE-Anwendung verwendet - von der kleinsten Stand-alone-Anwendung zum größten E-Commerce-System. Mit Quartz können einfache oder komplexe Zeitpläne für die Ausführung von Zehnen, Hunderten oder sogar Zehntausenden von Aufträgen erstellt werden. Jobs, deren Aufgaben als Standard-Java-Komponenten oder EJBs definiert sind. Der Quartz Scheduler enthält viele Funktionen der Enterprise-Klasse wie JTA-Transaktionen und Clustering.

Ich habe dies viel für die Planung in verschiedenen Arten von Anwendungen verwendet und waren sehr glücklich damit.

+0

Die Verwendung von Quartz ist ein bisschen schwer für die Antwort auf "Ich möchte X in 5 Minuten ausführen". Ich würde Quartz nur dann in Erwägung ziehen, wenn ich eine cron-artige Ausführung, verpasste Trigger, eine Stateful Execution etc –