開発およびテストツールのアプリケーションの背景では、複雑なビジネス計算ロジックを行うなど、ログ処理またはデータクリーニングを行うためにタイミングのあるタスクを実行する必要があると同僚が言うことがよくあります。タイミングのあるタスクを選択するとき、どのようにして彼らがそれをすばやく実装し、より適切な方法を選択できますか?ここでスケジュールされたタスクを実装するためのいくつかの方法を収集して整理しました。スケジュールされたタスクを実行し始めたばかりの学生が役立つことを願っています。間違った文章を修正してください。
Java Basic Timingタスクを要約するには、次の3つの方法があります。
1.1スレッドを作成し、その後、whileループで実行し、睡眠方法を介してタイミングタスクの効果を実現します。
1.2タイマーとティマタスクの使用には、最初の方法と比較して次の利点があります。
1.3 ScheduleDexecutorServiceは、java.util.concurrentの同時ツールクラスとして導入されています。これは、理想的なタイミングのタスク実装方法です。前の2つの方法と比較して、次の利点があります。
春のタイミングされたタスクを要約するには、次の3つの方法があります。
2.1 ScheduledTimertask:SpringのScheduledTimertaskは、タイマータスクの実行サイクルを定義します。残念ながら、タスク実行の頻度を指定できますが、実行時期を正確に指定することはできません。これには、タスクスケジューリングに2番目の石英を使用する必要があります。
Spring構成ファイルで宣言されたビジネスタスクを作成します。
Spring Configurationファイルで、ScheduleDtimerTaskを構成し、カスタムタスクインスタンスを関連付けます。
タイマーを開始してください、SpringのTimerFactoryBeanはタイミングタスクの開始を担当します
2.2クォーツの使用:
まず第一に、ビジネスロジックタスクをいつものように定義します。
春にジョブスケジューリングのトリガー方法を宣言して構成する
ここでは、クォーツ用のジョブトリガーの2種類があります。
org.springframework.scheduling.quartz.simpletriggerbean
org.springframework.scheduling.quartz.crontriggerbean
最初のSimpleTretiggerBeanは、一度1回実行するなど、特定の周波数での呼び出しのタスクのみをサポートします。
<bean id = "simpletretigger"> <プロパティ名= "jobdetail" ref = "myjob" /> <プロパティ名= "startdelay" value = "0" /> <! - ディスパッチファクトリがインスタンス化された後、ディスパッチは0秒後に開始します - > <プロパティname = "Repealinterval" value = "2000" />> <
2番目のタイプのCrontriggerbeanは、上記で構成されているように、毎日12:00に1回実行するなど、指定された時間に1回実行されることをサポートします。
ディスパッチファクトリを構成します
org.springframework.scheduling.quartz.schedulerfactorybean、コードは上記のようです。
アプリケーションを起動するだけです
2.3スプリングタスクの使用
Spring独自のタイミングタスクツールであるSpringタスクは、それを軽量の石英と比較でき、非常に簡単に使用できます。スプリング関連のパッケージを除いて追加のパッケージは必要ありません。また、2種類の注釈と構成ファイルをサポートします。
ステップ1:タスククラスを書きます。 taskjob、メソッドジョブ1-コード省略の2番目のステップ:スプリング構成ファイルヘッダーに名前空間と説明を追加
<beans xmlns = "http://www.springframework.org/schema/beans" xmlns:task = "http://www.springframework.org/schema/task" xsi:schemalocation = "http://www.springframework http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
ステップ3:Spring構成ファイルで特定のタスクを設定します
<タスク:スケジュールされたタスク> <タスク:スケジュールref = "taskjob" method = "job1" cron = "0 * * *?"/> </task:scheduled-tasks> <context:component-scanベースパッケージ= "com.alibaba.mytask"/>>
説明:REFパラメーターはタスククラスを指定し、メソッドは実行する必要があるメソッド、CronおよびCronexpression式を指定し、特定のライティング方法はここでは紹介されません。
上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。