グローバルタイミングタスク-CronUtil
前書き
CronUtilは、グローバルタイミングタスク構成ファイルを介して統一されたタイミングタスクスケジューリングを実現します。
使用する
1.構成ファイル
Mavenプロジェクトの場合、最初src/main/resources/config
はcron.settingファイル(これはファイルのデフォルトパスです)の下に配置され、次にファイルタイミングルールに配置されます。ルールは次のとおりです。
# 我是注释
[com.company.aaa.job]
TestJob.run = */10 * * * *
TestJob2.run = */10 * * * *
括弧はグループ化を示し、クラスまたはオブジェクトメソッドを実行する必要があるパッケージの名前も示します。このタイプの書き込みは、さまざまなサービスのタイミングタスクを区別するのに役立ちます。
TestJob.run
実行する必要のあるクラス名とメソッド名(リフレクションによる呼び出し、Springの依存性注入、フレームワークはサポートされていません)、*/10 * * * *
タイミングタスク式を示します。ここでは、10分ごとに実行されることを意味します。上記構成は次と同等です。
com.company.aaa.job.TestJob.run = */10 * * * *
com.company.aaa.job.TestJob2.run = */10 * * * *
式の構文に関するヒントについては、http://www.cnblogs.com/peida/archive/2013/01/08/2850483.htmlを参照してください。
2.開始
CronUtil.start();
タイミングタスクスレッドと同時にジョブの実行を終了したい場合は、タイミングタスクをデーモンスレッドとして設定できます。このモードでは、停止するとすぐにすべてのジョブスレッドが終了することに注意してください。呼び出されました。ジョブが中断される可能性があることを確認してください。
//使用deamon模式,
CronUtil.start(true);
3.閉じる
CronUtil.stop();
より多くのオプション
セカンドマッチとイヤーマッチ
クォーツ式の互換性と第2レベルの精度マッチングの必要性を考慮して、Hutoolは第2マッチングモードを設定することで互換性を持たせることができます。
//支持秒级别定时任务
CronUtil.setMatchSecond(true);
現時点では、HutoolはQuartz式と互換性があります(5桁の式と6桁の式は互換性があります)
時限タスクを動的に追加する
もちろん、時限タスクを動的に追加する場合は、CronUtil.schedule(String schedulingPattern, Runnable task)
メソッドを使用するだけです(このメソッドを使用して追加された時限タスクは構成ファイルに書き込まれません)。
CronUtil.schedule("*/2 * * * * *", new Task() {
@Override
public void execute() {
Console.log("Task excuted.");
}
});
// 支持秒级别定时任务
CronUtil.setMatchSecond(true);
CronUtil.start();