JavaタイミングタスクQuartz(一)——初認識
5621 ワード
1前に書いてください
最近の会社の業務はタイミングタスクが必要です。フレームの選定にはQuartzが使われています。ここで学習記録を作ります。
2 Quartzの主要メンバー
Quartzの核心は三つのインターフェースからなります。それぞれJob、Trigger、Schdulerです。
2.1 Job
具体的なタスクの実行について説明しますが、その構造はRunnableと似ています。一つのvoidタイプの方法しかありません。 execute(JobExecution Contect context)は、もう一つのサブクラスがあります。 Interruptable Jobは、終了可能なタスクを表します。
2.1.1 Interruptable Job
Jobベースではvoidタイプのみを追加しました。 interrupt()はタスクを終了するための呼び出しが発生しました。 QuartzScheduler葃shutdownにおいて、これは私達に対して終止可能なRunnableを書くように編纂する必要があります。 executeメソッドです
2.2 Trigger
Jobを記述するためのものです。 executeメソッドはいつ実行しますか?
2.3 Scheduler
キューとスレッドプールのように、各種Jobの情報とTrigger、管理タスクの追加、削除、置換、運転などを保存します。
3 Quartzの初歩使用
Scheduler:管理タスクの容器として、Schedulerはスレッドプールと同様の提出タスクとクローズプールの方法があるべきです。対応する追加タスクの方法はそれぞれ addJob, scheduleJob、あいにくこれらの方法の署名は JobDetail;
JobDetail:JobDetailにはJobDetailImplがあります。そして、空のコンストラクタはname、class、groupを指定しなければならないと表しています。classとはJobのことです インターフェースの実現;グループはオプションで、デフォルトではdefaultを使用します。
Trigger:Triggerには複数の実現類があります。ここでは基本的な実現にのみ関連します。 SimpleTriggerImpl
上記の三つのインターフェースには対応する建築類や工場類があります。
3.1通常のタイミングタスク
上のコードは現在のジョブを印刷するジョブを作成し、その実行開始時間を提出時として指定し、サイクルは2秒とし、永続的です。10秒後に容器を閉じます。
4タスク作成中のピット
必要な属性:JobDetailには説明名が必要です。グループは未設定の時にdefaultを使用します。
アクセス可能性:一般的なコードの中で、私たちは上のようなアクセスを制限する習慣があります。 SimpleJobはprvateを定義するかもしれません。これはQuartzでは許されません。Jobの空のコンストラクタはpubilcでなければなりません。 Quartzの特性は関係があります。
最近の会社の業務はタイミングタスクが必要です。フレームの選定にはQuartzが使われています。ここで学習記録を作ります。
2 Quartzの主要メンバー
Quartzの核心は三つのインターフェースからなります。それぞれJob、Trigger、Schdulerです。
2.1 Job
具体的なタスクの実行について説明しますが、その構造はRunnableと似ています。一つのvoidタイプの方法しかありません。 execute(JobExecution Contect context)は、もう一つのサブクラスがあります。 Interruptable Jobは、終了可能なタスクを表します。
2.1.1 Interruptable Job
Jobベースではvoidタイプのみを追加しました。 interrupt()はタスクを終了するための呼び出しが発生しました。 QuartzScheduler葃shutdownにおいて、これは私達に対して終止可能なRunnableを書くように編纂する必要があります。 executeメソッドです
2.2 Trigger
Jobを記述するためのものです。 executeメソッドはいつ実行しますか?
2.3 Scheduler
キューとスレッドプールのように、各種Jobの情報とTrigger、管理タスクの追加、削除、置換、運転などを保存します。
3 Quartzの初歩使用
Scheduler:管理タスクの容器として、Schedulerはスレッドプールと同様の提出タスクとクローズプールの方法があるべきです。対応する追加タスクの方法はそれぞれ addJob, scheduleJob、あいにくこれらの方法の署名は JobDetail;
JobDetail:JobDetailにはJobDetailImplがあります。そして、空のコンストラクタはname、class、groupを指定しなければならないと表しています。classとはJobのことです インターフェースの実現;グループはオプションで、デフォルトではdefaultを使用します。
Trigger:Triggerには複数の実現類があります。ここでは基本的な実現にのみ関連します。 SimpleTriggerImpl
上記の三つのインターフェースには対応する建築類や工場類があります。
3.1通常のタイミングタスク
1 /**
2 * @author pancc
3 * @version 1.0
4 */
5 public class SimpleJobDemo {
6 public static void main(String[] args) throws SchedulerException, InterruptedException {
7 JobDetail detail = JobBuilder.newJob(SimpleJob.class)
8 .withIdentity("simple", "group0")
9 .build();
10
11 Trigger trigger = TriggerBuilder.newTrigger()
12 .withIdentity("simple_trigger")
13 .startNow()
14 .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(2))
15 .build();
16
17 Scheduler scheduler = new StdSchedulerFactory().getScheduler();
18
19 scheduler.start();
20 scheduler.scheduleJob(detail, trigger);
21 /*
22 * 10
23 */
24 Thread.sleep(10_000);
25 scheduler.shutdown();
26 }
27
28 public static class SimpleJob implements Job {
29 @Override
30 public void execute(JobExecutionContext context) {
31 System.out.printf("now date: %s", new Date());
32 }
33 }
34
35 }
上のコードは現在のジョブを印刷するジョブを作成し、その実行開始時間を提出時として指定し、サイクルは2秒とし、永続的です。10秒後に容器を閉じます。
4タスク作成中のピット
必要な属性:JobDetailには説明名が必要です。グループは未設定の時にdefaultを使用します。
アクセス可能性:一般的なコードの中で、私たちは上のようなアクセスを制限する習慣があります。 SimpleJobはprvateを定義するかもしれません。これはQuartzでは許されません。Jobの空のコンストラクタはpubilcでなければなりません。 Quartzの特性は関係があります。