導入
Quarztは、プロジェクトで定期的にタスクを実行するオープンソースプロジェクトです。 Quartzは、ジョブスケジューリングの分野におけるもう1つのオープンソースプロジェクトです。 J2EEおよびJ2SEアプリケーションと組み合わせたり、個別に使用したりできます。ここでは、Springとの統合の例を紹介します。
SpringにはQuarztが統合されているため、構成するだけが必要です。
JARパッケージをダウンロードします
http://www.quartz-scheduler.org/ quarztの公式ウェブサイトでJarパッケージを直接ダウンロードできます
それはメイベンを通して構築できます、春に必要な瓶を紹介することを忘れないでください
<! - Quartzの対応する依存関係の導入 - > <依存関係> GroupId> org.quartz-scheduler </groupid> <artifactid> Quartz </artifactid> <バージョン> 2.2.3 </バージョン> <バージョン> 2.2.3 </version> </dependency>
コンセプト
タスククラス:つまり、定期的にコード実行を必要とするクラス。
JobDetail:タスククラスの構成の詳細、つまり、タスククラスを注入してタスククラスを指定する方法は、それ自体がステートフルである可能性のある実行可能なジョブです。
MyTrigger:トリガーは、スケジューリングパラメーターの構成を表し、呼び出し時間を構成します。
スケジューラ:これはスケジューラコンテナであり、多くのジョブデテールとトリガーを保持できます。コンテナが起動すると、トリガーに従って段階的に段階的に自動的に実行されます。
構成方法
最初にタスククラスを書きます
public class myjob {public void job(){system.out.println(new simpledateFormat( "yyyy-mm-dd hh:mm:ss")。format(new date()) + ":タスク実行"); }}次に、タスククラスの豆を構成するために春
<bean id = "myjob" />
JobDetailを構成し、タスククラスを注入し、タスククラスのメソッドを注入します
<bean id = "jobdetail"> <! - ターゲットオブジェクトを注入 - > <プロパティ名= "ターゲットオブジェクト" ref = "myjob"/> <! - ターゲットメソッド - > <プロパティ名= "ターゲットメソッド"値= "job"/> </bean> </bean>
トリガーを構成します
<! - トリガーを構成 - > <bean id = "mytrigger"> <! - [タスク]詳細を注入 - > <プロパティ名= "jobdetail" ref = "jobdetail"/> <! - トリガーポイントを指定します - > <プロパティ名= "cronexpression"> <値>/5 *トウモロコシは次のように生き残ります</Property> </Bean>
最後に、ディスパッチファクトリを構成し、構成されたトリガーを注入します
<! - ディスパッチファクトリを構成 - > <bean id = "schedulerfactorybean"> <! - inject trigger-> <property name = "triggers"> <list> <ref bean = "mytrigger"/> </list> </property> </bean> </bean>
この時点で、構成が完了し、タイミングタスクを実行できます。
実行結果
クロンの表現
トウモロコシは、タスクのスケジューリング時間を制御するために使用され、トリガーで構成されます。以下は、トウモロコシの表現の基本的な構文です。複雑すぎる場合は、コーン構文ジェネレーターがインターネットhttp://cron.qqe2.com/で提供されます。条件を指定することにより、トウモロコシの表現を自動的に生成できます。
以下は7つで表される意味です *
アスタリスク: *はいつでも表します。これは、この分野にすべての法的価値を含めたいことを示します。
* * * * * *は、それが毎回トリガーすることを意味します
0 * 17 * * ? :インスパイアは毎日午後5時から午後5時59分までトリガーをトリガーします。値は時間ドメインで17であり、午後6時に1時間が18になるため、午後5時59分に停止するので、翌日の午後5時までこのトリガーを無視します。
疑問符(?):?サインは毎日および毎週のドメインでのみ使用できますが、これら2つのドメインで同時に使用することはできません。思いますか?キャラクターは「フィールド上の価値が気にしない」です。これはアスタリスクとは異なり、フィールド上のすべての値を示しています。 ?このフィールドの値を指定しないことを意味します。これら2つのフィールドのいずれかの値を指定した場合、あなたは置く必要がありますか?他の単語値について。
0 10,44 14 ? 3 WEB :3月の毎週水曜日の午後2時10分と午後2時44分にトリガーされます。
コンマ(、):フィールドに値のリストを指定するために使用されます。たとえば、2番目のフィールドで値0,15,30,45を使用すると、15秒ごとにトリガーがトリガーされることを意味します。
0 0,15,30,45 * * * ? :トリガーは1時間ごとにトリガーされます。
Backslash(/):(/)は、インクリメンタル時刻表に使用されます。 15分ごとに増分を表すためにコンマを使用しましたが、0/15として記述することもできます。
0/15 0/30 * * * ? :トリガーは、時間と半分の両方のポイントで15秒ごとにトリガーされます。
ミディアムスコア( - ):ミディアムスコア( - )は、範囲を指定するために使用されます。たとえば、時間ドメインの3-8は「3、4、5、6、7、8ポイント」を意味します。ドメインの値は巻き戻しを許可しないため、50〜10のような値は許可されていません。
0 45 3-8 ? * * ::午前3時から午前4時までのトリガー。
文字(L):Lは、フィールドで許可されている最後の値を示します。毎日のドメインと毎週のドメインによってのみサポートされています。デイドメインで使用する場合、月のドメインで指定された月の最終日を表します。レターLが週のドメインで使用されている場合、土曜日(または7番)である週の最終日を示す場合、Lを接続して月の最後の週を表すことができます。
0 0 8 L * ? :毎月午前8時にトリガー
0 59 23 ? * L :毎月最後の土曜日に11:59にトリガーされました
0 0 12 ? * 2L :毎月の最後の月曜日にトリガーをトリガーします(数はLに接続され、月の最後の週を表しますx)
文字(w):平日(月曜日)、そして毎日のドメインでのみ使用できます。指定された日に最も近い平日を指定するために使用されます
Hack Sign(#):#文字は、周辺ドメインでのみ使用できます。指定された月の曜日を指定するために使用されます。たとえば、毎週のフィールドの値を6#3と指定する場合、特定の月の第3金曜日(6 =金曜日、#3は月の第3週を意味します)を意味します。
例
「0012 **?」毎日正午にトリガーされた「01510?**」毎日午前10時15分にトリガーされた "01510 **?"毎日午前10時15分にトリガー "01510 **?*"毎日午前10時15分にトリガーされた "01510 **?2005"毎日午前10時15分にトリガーされます "0*14 **?" 2005年の毎日午前10時15分に毎日午後2時59分から「00/514 **?」毎日午後2時から毎日午後2時から午後2時55分までトリガーされた「00/514,18 **?」毎日午後2時から午後2時から午後2時55分、毎日午後6時55分、毎日午後6時55分から午後6時55分ごとに毎日5分ごとにトリガーされます。 「月の15日の015 AM」「01510L*?」 「月の最終日の015 am」「01510?*6L」月の最後の金曜日の午前10時15分、2002年から2005年までの月曜日の午前10時15分に開催された最終金曜日の最終金曜日の最終金曜日」
要約します
上記は、この記事のQuarztスケジュールされたタスクに関するものです。誰にとっても役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!