タスクスケジューリングとは、特定の時点、特定の時間間隔、または特定の数の実行数に基づいてタスクを自動的に実行することを指します。
たとえば、毎週日曜日の午後9時にシステムをデータベースファイルにバックアップする必要があります。タスクスケジューリングを使用して実装できます。より便利なため、Tomcatが開始された後、このスケジューリングを自動的に開始する必要があります。
これがTimerTask APIです:
以下はタイマークラスAPIです
次の例では、2つの関数が実装されています。
1. TomcatのWebコンテナの起動とシャットダウンを監視する
2。Webコンテナが開始されると、タスクスケジュールはタスクオブジェクト、時間、および期間を割り当てます。
Webコンテナの変更を監視するには、最初にWeb.xmlでリスナーを登録する必要があります
<?xml version = "1.0" encoding = "utf-8"?> <web-appバージョン= "3.0" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instcance" xsi:schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <! - リスナータイマーラステナーを追加します。 <リスナークラス> com.util.timerlistener </ristener-class> </ristener> <display-name> </display-name> <welcome-filelist> <welcome-file> index.jsp </welcome-file> </welcome-file-list> </web-app>
2番目のステップは、タスクオブジェクト、基本的なティマタスクを定義することです
パッケージcom.util; import java.util.timer;インポートjava.util.timertask;/** * 1。タスクオブジェクトを定義します * jdk-ティマタスク * */パブリッククラスのデータバックアップがextends timertask {@Override public void run(){//タスクの内容ローカルSQLファイルへのテーブルジャンクションとデータ "); }}ステップ3。Webコンテナの変更を監視します。 Webコンテナが開始されたら、タスクのスケジューリングに時間とサイクルを割り当てます。次のコードにはいくつかの例が含まれています。
パッケージcom.util; import java.util.date; import java.util.timer; import javax.servlet.servletcontextevent; Import javax.servlet.servletcontextListener;パブリッククラスのタイマーリストナーは、servetcontextextlistener {private stentic timer timer; / *** Webコンテナを聴く*/ @Override public void contextdestroyed(servletcontextevent scce){system.out.println( "web container close"); Timer.Cancel(); } / *** Webコンテナの起動を聴く* / @Override public void contextInitialized(servletContextevent scet){system.out.println( "web container startup"); / ***タイマーメーターを準備*/タイマー= new Timer(); system.out.println( "タイマーは準備中であり、タスクスケジューリングの時間と期間の割り当てを開始します"); //タスクオブジェクトデータバックアップバックアップ= new DataBackup(); // 1スケジュール(Timertaskタスク、データ時間)//指定されたタスクをスケジュールして指定された時間で実行を開始します// 1つの//timer.schedule(115,8,10,9,54,0)); // 2スケジュール(Timertaskタスク、初めて、長期間)//スケジュール(バックアップ、新しい日付(115,8,10,10,0,0)、2000); // 3schedule(Timertaskタスク、長い遅延)//スケジュール(Timertaskタスク、長い遅延)//スケジュール(Timertaskタスク、長い遅延)//スケジュール(Timertaskタスク、長い遅延)//スケジュール(Timertaskタスク、長い遅延)//スケジュール(Timertaskタスク、長い遅延)//スケジュール(Timertaskタスク)//スケジュール(Timertaskタスク) //スケジュール(Timertaskタスク、長い遅延)//timer.schedule(backup、5000); // 4スケジュール(Timertaskタスク、長い遅延、長期)//timer.schedule(backup、5000、2000); // 5。毎日午前9時にタスクを1回出発//timer.schedule(Backup、new Date(115,8,11,9,0,0)、24*60*60*1000); // 6。毎週土曜日の午前3時にタスクを1回出発//timer.schedule(backup、new Date(115,8,12,3,0,0)、7*24*60*60*1000); }}このようにして、Tomcatが開始されると、タスクオブジェクトは割り当てられた時間とサイクルに従って実行を開始します。
概要:タイマーを使用してタスクスケジューリングを実装し、まずここでバックアップなどの定義されたタスクオブジェクトを作成します。次に、タイマーをインスタンス化し、タスクオブジェクトをインスタンス化し、タスクオブジェクトに時間と期間を割り当てる要件に従って対応する方法を呼び出します。上記は、タスクスケジューリングの実装です。このタイマーが起動するとき、つまり、タイマーがインスタンス化を開始するとき、実際の状況に基づいて決定する必要があります。たとえば、上記のコードは、Webコンテナが開始された後にタイマーを起動することです。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。