Quartz (quartz
)
quartz
エンドポイントは、Quartz スケジューラによって管理されるジョブとトリガーに関する情報を提供します。
登録済みグループの取得
ジョブとトリガーはグループで管理されます。登録されたジョブとトリガーグループのリストを取得するには、次の curl ベースの例に示すように、/actuator/quartz
に GET
リクエストを送信します。
$ curl 'http://localhost:8080/actuator/quartz' -i -X GET
結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 120
{
"jobs" : {
"groups" : [ "samples", "tests" ]
},
"triggers" : {
"groups" : [ "samples", "DEFAULT" ]
}
}
登録されたジョブ名の取得
登録されたジョブ名のリストを取得するには、次の curl ベースの例に示すように、GET
リクエストを /actuator/quartz/jobs
に送信します。
$ curl 'http://localhost:8080/actuator/quartz/jobs' -i -X GET
結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 137
{
"groups" : {
"samples" : {
"jobs" : [ "jobOne", "jobTwo" ]
},
"tests" : {
"jobs" : [ "jobThree" ]
}
}
}
登録されたトリガー名の取得
登録されたトリガー名のリストを取得するには、次の curl ベースの例に示すように、GET
リクエストを /actuator/quartz/triggers
に送信します。
$ curl 'http://localhost:8080/actuator/quartz/triggers' -i -X GET
結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 229
{
"groups" : {
"samples" : {
"paused" : false,
"triggers" : [ "3am-weekdays", "every-day", "once-a-week" ]
},
"DEFAULT" : {
"paused" : false,
"triggers" : [ "every-hour-tue-thu" ]
}
}
}
ジョブグループの概要の取得
特定のグループ内のジョブの概要を取得するには、次の curl ベースの例に示すように、GET
リクエストを /actuator/quartz/jobs/{groupName}
に送信します。
$ curl 'http://localhost:8080/actuator/quartz/jobs/samples' -i -X GET
前述の例では、samples
グループ内のジョブの概要を取得します。結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 201
{
"group" : "samples",
"jobs" : {
"jobOne" : {
"className" : "org.springframework.scheduling.quartz.DelegatingJob"
},
"jobTwo" : {
"className" : "org.quartz.Job"
}
}
}
トリガーグループの概要を取得する
特定のグループ内のトリガーの概要を取得するには、次の curl ベースの例に示すように、GET
リクエストを /actuator/quartz/triggers/{groupName}
に送信します。
$ curl 'http://localhost:8080/actuator/quartz/triggers/tests' -i -X GET
前述の例では、tests
グループ内のトリガーの概要を取得します。結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 1268
{
"group" : "tests",
"paused" : false,
"triggers" : {
"cron" : {
"3am-week" : {
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 3,
"expression" : "0 0 3 ? * 1,2,3,4,5",
"timeZone" : "Europe/Paris"
}
},
"simple" : {
"every-day" : {
"nextFireTime" : "2020-12-04T12:00:00.000+00:00",
"priority" : 7,
"interval" : 86400000
}
},
"dailyTimeInterval" : {
"tue-thu" : {
"priority" : 5,
"interval" : 3600000,
"daysOfWeek" : [ 3, 5 ],
"startTimeOfDay" : "09:00:00",
"endTimeOfDay" : "18:00:00"
}
},
"calendarInterval" : {
"once-a-week" : {
"previousFireTime" : "2020-12-02T14:00:00.000+00:00",
"nextFireTime" : "2020-12-08T14:00:00.000+00:00",
"priority" : 5,
"interval" : 604800000,
"timeZone" : "Etc/UTC"
}
},
"custom" : {
"once-a-year-custom" : {
"previousFireTime" : "2020-07-14T16:00:00.000+00:00",
"nextFireTime" : "2021-07-14T16:00:00.000+00:00",
"priority" : 10,
"trigger" : "com.example.CustomTrigger@fdsfsd"
}
}
}
}
レスポンス構造
レスポンスには、特定のグループのトリガーの概要が含まれます。トリガー実装固有の詳細が利用可能です。次の表は、レスポンスの構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| グループの名前。 |
|
| グループが一時停止されているかどうか。 |
|
| 名前でキー指定された Cron トリガー (存在する場合)。 |
|
| 名前でキー指定された単純なトリガー(存在する場合)。 |
|
| 名前でキー指定された毎日の時間間隔トリガー(存在する場合)。 |
|
| 名前でキー指定されたカレンダー間隔トリガー(存在する場合)。 |
|
| 名前でキー指定されたその他のトリガー(存在する場合)。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
|
| 使用する Cron 式。 |
|
| 式が解決されるタイムゾーン(存在する場合)。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
|
| 2 回の実行間の間隔 (ミリ秒単位)。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
|
| 次のトリガー繰り返しの時間を計算するために、発火時間に追加される間隔 (ミリ秒単位)。 |
|
| 実行する曜日の配列。 |
|
| 指定された間隔で発射を開始する時刻(ある場合)。 |
|
| 指定された間隔で発射を完了する時刻(ある場合)。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
|
| 次のトリガー繰り返しの時間を計算するために、発火時間に追加される間隔 (ミリ秒単位)。 |
|
| 時間計算が実行されるタイムゾーン(存在する場合)。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
|
| カスタムトリガーインスタンスの toString 表現。 |
ジョブの詳細を取得する
特定のジョブの詳細を取得するには、次の curl ベースの例に示すように、/actuator/quartz/jobs/{groupName}/{jobName}
に対して GET
リクエストを実行します。
$ curl 'http://localhost:8080/actuator/quartz/jobs/samples/jobOne' -i -X GET
上記の例では、samples
グループと jobOne
名で識別されるジョブの詳細を取得します。結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 609
{
"group" : "samples",
"name" : "jobOne",
"description" : "A sample job",
"className" : "org.springframework.scheduling.quartz.DelegatingJob",
"durable" : false,
"requestRecovery" : false,
"data" : {
"password" : "secret",
"user" : "admin"
},
"triggers" : [ {
"group" : "samples",
"name" : "every-day",
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-04T12:00:00.000+00:00",
"priority" : 7
}, {
"group" : "samples",
"name" : "3am-weekdays",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 3
} ]
}
データマップ内のキーが機密情報として識別された場合、その値はサニタイズされます。
レスポンス構造
レスポンスには、ジョブの完全な詳細と、それに関連付けられているトリガーの概要(存在する場合)が含まれます。トリガーは、次回の起動時間と優先度で並べ替えられます。次の表は、レスポンスの構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| グループの名前。 |
|
| ジョブの名前。 |
|
| ジョブの説明(ある場合)。 |
|
| ジョブ実装の完全修飾名。 |
|
| ジョブが孤立した後も保存されたままにするかどうか。 |
|
| 「リカバリ」または「フェイルオーバー」の状況が発生した場合にジョブを再実行する必要があるかどうか。 |
|
| ジョブデータは、存在する場合はキー / 値のペアとしてマップされます。 |
|
| ジョブに関連付けられているトリガーの配列(存在する場合)。 |
|
| トリガーグループの名前。 |
|
| トリガーの名前。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
トリガーの詳細を取得する
特定のトリガーに関する詳細を取得するには、次の curl ベースの例に示すように、/actuator/quartz/triggers/{groupName}/{triggerName}
に対して GET
リクエストを実行します。
$ curl 'http://localhost:8080/actuator/quartz/triggers/samples/example' -i -X GET
上記の例では、samples
グループと example
名で識別されるトリガーの詳細を取得します。
共通レスポンス構造
レスポンスには共通の構造と、トリガーの型に固有の追加オブジェクトがあります。サポートされている型は次の 5 つです。
CronTrigger
用cron
SimpleTrigger
用simple
DailyTimeIntervalTrigger
用dailyTimeInterval
CalendarIntervalTrigger
用calendarInterval
その他のトリガー実装の場合は
custom
次の表は、レスポンスの共通要素の構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| グループの名前。 |
|
| トリガーの名前。 |
|
| トリガーの説明(ある場合)。 |
|
| トリガーの状態( |
|
| トリガーの型 ( |
|
| このトリガーに関連付けられているカレンダーの名前(存在する場合)。 |
|
| トリガーが有効になる時間(ある場合)。 |
|
| 残りの繰り返しの有無に関係なく、トリガーが繰り返しを終了する時間。 |
|
| トリガーが最後に起動した時刻(ある場合)。 |
|
| トリガーが次に起動する予定の時刻(ある場合)。 |
|
| 2 つのトリガーのスケジュールされた発動時刻が同じ場合に使用する優先順位。 |
|
| トリガーが最後に発動する時刻(ある場合)。 |
|
| 名前でキー付けされたジョブデータマップ (存在する場合)。 |
|
| カレンダー時間間隔トリガーの詳細(存在する場合)。 |
|
| カスタムトリガーの詳細 (存在する場合)。 |
|
| Cron トリガーの詳細 (存在する場合)。 |
|
| 毎日の時間間隔トリガーの詳細(ある場合)。 |
|
| 単純なトリガーの詳細(ある場合)。 |
Cron トリガーレスポンス構造
cron トリガーは、トリガーをいつ起動するかを決定するために使用される cron 式を定義します。このようなトリガー実装の結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 490
{
"group" : "samples",
"name" : "example",
"description" : "Example trigger",
"state" : "NORMAL",
"type" : "cron",
"calendarName" : "bankHolidays",
"startTime" : "2020-11-30T17:00:00.000+00:00",
"endTime" : "2020-12-30T03:00:00.000+00:00",
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 3,
"data" : { },
"cron" : {
"expression" : "0 0 3 ? * 1,2,3,4,5",
"timeZone" : "Europe/Paris"
}
}
レスポンスの大部分は、すべてのトリガー型に共通です。レスポンスの共通要素の構造については、前に説明しました。次の表は、cron トリガーに固有のレスポンス部分の構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| Cron トリガー固有の詳細。 |
|
| 使用する Cron 式。 |
|
| 式が解決されるタイムゾーン(存在する場合)。 |
シンプルなトリガーレスポンス構造
シンプルなトリガーは、特定の時点でジョブを起動するために使用され、オプションで指定された間隔で繰り返し実行されます。このようなトリガー実装の結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 549
{
"group" : "samples",
"name" : "example",
"description" : "Example trigger",
"state" : "NORMAL",
"type" : "simple",
"calendarName" : "bankHolidays",
"startTime" : "2020-11-30T17:00:00.000+00:00",
"endTime" : "2020-12-30T03:00:00.000+00:00",
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 7,
"finalFireTime" : "2020-12-29T17:00:00.000+00:00",
"data" : { },
"simple" : {
"interval" : 86400000,
"repeatCount" : -1,
"timesTriggered" : 0
}
}
レスポンスの大部分は、すべてのトリガー型に共通です。レスポンスの共通要素の構造については、前に説明しました。次の表は、単純なトリガーに固有のレスポンス部分の構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| シンプルなトリガー固有の詳細。 |
|
| 2 回の実行間の間隔 (ミリ秒単位)。 |
|
| トリガーを繰り返す回数。無期限に繰り返す場合は -1 を指定します。 |
|
| トリガーがすでに起動された回数。 |
毎日の時間間隔トリガーレスポンス構造
毎日の時間間隔トリガーは、毎日繰り返される時間間隔に基づいてジョブを起動するために使用されます。このようなトリガー実装の結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 667
{
"group" : "samples",
"name" : "example",
"description" : "Example trigger",
"state" : "PAUSED",
"type" : "dailyTimeInterval",
"calendarName" : "bankHolidays",
"startTime" : "2020-11-30T17:00:00.000+00:00",
"endTime" : "2020-12-30T03:00:00.000+00:00",
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 5,
"finalFireTime" : "2020-12-30T18:00:00.000+00:00",
"data" : { },
"dailyTimeInterval" : {
"interval" : 3600000,
"daysOfWeek" : [ 3, 5 ],
"startTimeOfDay" : "09:00:00",
"endTimeOfDay" : "18:00:00",
"repeatCount" : -1,
"timesTriggered" : 0
}
}
レスポンスの大部分は、すべてのトリガー型に共通です。レスポンスの共通要素の構造については、前に説明しました。次の表は、毎日の時間間隔トリガーに固有のレスポンス部分の構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| 毎日の時間間隔トリガーの特定の詳細。 |
|
| 次のトリガー繰り返しの時間を計算するために、発火時間に追加される間隔 (ミリ秒単位)。 |
|
| 実行する曜日の配列。 |
|
| 指定された間隔で発射を開始する時刻(ある場合)。 |
|
| 指定された間隔で発射を完了する時刻(ある場合)。 |
|
| トリガーを繰り返す回数。無期限に繰り返す場合は -1 を指定します。 |
|
| トリガーがすでに起動された回数。 |
カレンダー間隔トリガーレスポンス構造
カレンダー間隔トリガーは、カレンダーの時間間隔の繰り返しに基づいてジョブを起動するために使用されます。このようなトリガー実装の結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 669
{
"group" : "samples",
"name" : "example",
"description" : "Example trigger",
"state" : "NORMAL",
"type" : "calendarInterval",
"calendarName" : "bankHolidays",
"startTime" : "2020-11-30T17:00:00.000+00:00",
"endTime" : "2020-12-30T03:00:00.000+00:00",
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 5,
"finalFireTime" : "2020-12-28T17:00:00.000+00:00",
"data" : { },
"calendarInterval" : {
"interval" : 604800000,
"timeZone" : "Etc/UTC",
"timesTriggered" : 0,
"preserveHourOfDayAcrossDaylightSavings" : false,
"skipDayIfHourDoesNotExist" : false
}
}
レスポンスの大部分は、すべてのトリガー型に共通です。レスポンスの共通要素の構造については、前に説明しました。次の表は、カレンダー間隔トリガーに固有のレスポンス部分の構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| カレンダー間隔トリガー固有の詳細。 |
|
| 次のトリガー繰り返しの時間を計算するために、発火時間に追加される間隔 (ミリ秒単位)。 |
|
| 時間計算が実行されるタイムゾーン(存在する場合)。 |
|
| トリガーがすでに起動された回数。 |
|
| 夏時間の移行に関係なく、同じ時間にトリガーを起動するかどうか。 |
|
| 特定の日にその時間が存在しない場合、スキップするかどうか。 |
カスタムトリガーレスポンス構造
カスタムトリガーは、その他の実装です。このようなトリガー実装の結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 457
{
"group" : "samples",
"name" : "example",
"description" : "Example trigger.",
"state" : "NORMAL",
"type" : "custom",
"calendarName" : "bankHolidays",
"startTime" : "2020-11-30T17:00:00.000+00:00",
"endTime" : "2020-12-30T03:00:00.000+00:00",
"previousFireTime" : "2020-12-04T03:00:00.000+00:00",
"nextFireTime" : "2020-12-07T03:00:00.000+00:00",
"priority" : 10,
"custom" : {
"trigger" : "com.example.CustomTrigger@fdsfsd"
}
}
レスポンスの大部分は、すべてのトリガー型に共通です。レスポンスの共通要素の構造については、前に説明しました。次の表は、カスタムトリガーに固有のレスポンス部分の構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| カスタムトリガー固有の詳細。 |
|
| カスタムトリガーインスタンスの toString 表現。 |