2009-02-26 9 views
0

5分後に特定のピースコードを実行したい。 Javaを使ってどうすればいいですか?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>"); 

15分後に上記を実行します。あなたが使用することができ

+0

5分15分後にサーブレット内のクライアントにデータを送信しようとしていますか?この場合、以下のすべての(そうでなければ正しい)答えはあなたを助けません。あなたの問題について質問してください。あなたは解決策が何であると思いませんか。 –

+0

私はスターブルーによる編集が問題をより不明瞭にしたと思います。彼はなぜ元の質問ではなかったHTMLの印刷について、そのすべてのものを追加しましたか? – Nicolai

答えて

0

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

をスリープ()メソッドは、引数、あなたの15分間のため、膨大な数としてミリ秒かかります。 Javaの1.5では

+0

あなたはhttpservletを拡張し、実行可能なスレッドを実装するクラスを持つ必要があることを意味します。 –

+0

いいえ、Thread.sleepでは、現在のスレッドに指定された時間待機するよう指示します。何も実装する必要はありません。コード内の – boutta

3

、あなたがjava.util.concurrentパッケージに

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

を使用することができます上記のあなたは、このように実行をキャンセルすることができます

f.cancel(false); 
+0

あなたは15分の言及をしました –

+0

あなたの質問には「5分」と書かれています。コードが15の場合はコードを編集します –

+0

Quartzが過剰であることに同意します。だから私はあなたの答えに+1しました。私はまだ完全性のために私の答えを与えました – Nicolai

1

Quartzフレームワークはまた、あなたに役立つかもしれません。自分のサイトから

クォーツは、事実上すべてのJ2EEまたはJ2SEアプリケーションと統合することができるフル機能を備えた、オープンソースのジョブスケジューリングシステムであり、または側面に沿って使用 - 最小のスタンドアロンアプリケーションから最大の電子商取引システムにQuartzを使用すると、数十、数百、さらには数万のジョブを実行するための単純なまたは複雑なスケジュールを作成できます。タスクが標準JavaコンポーネントまたはEJBとして定義されているジョブ。 Quartz Schedulerには、JTAトランザクションやクラスタリングなどのエンタープライズクラスの多くの機能が含まれています。

私はこれをさまざまな種類のアプリケーションでスケジューリングに使用しており、非常に満足しています。

+0

クォーツを使用すると、「5分でXを実行したい」という答えが少し重いです。もし私がcronのような実行、トリガの逃し、ステートフルな実行などを望むなら、私はQuartzだけを考慮する。 –

関連する問題