Quartz (quartz)
quartz
端点提供有关由 Quartz 调度器管理的任务和触发器的信息。
获取已注册的组
任务和触发器被管理在组中。要获取已注册的任务和触发器组的列表,可以按照以下基于 curl 的示例发送 GET
请求到 /actuator/quartz
:
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 触发器(如果有)。 |
|
|
以名称为键的简单触发器(如果有)。 |
|
|
以名称为键的每日时间间隔触发器(如果有)。 |
|
|
以名称为键的日历间隔触发器(如果有)。 |
|
|
以名称为键的其他触发器(如果有)。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
|
|
使用的 Cron 表达式。 |
|
|
解析表达式的时区(如果有)。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
|
|
两次执行之间的间隔(以毫秒为单位)。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
|
|
加到触发时间以计算下一个触发器重复时间的间隔(以毫秒为单位)。 |
|
|
在每周的哪些天触发的数组。 |
|
|
以给定间隔开始触发的时间(如果有)。 |
|
|
以给定间隔完成触发的时间(如果有)。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
|
|
加到触发时间以计算下一个触发器重复时间的间隔(以毫秒为单位)。 |
|
|
进行时间计算的时区(如果有)。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
|
|
自定义触发器实例的 toString 表示。 |
获取任务详情
要获取特定任务的详细信息,可以按照以下基于 curl 的示例发送 GET
请求到 /actuator/quartz/jobs/{groupName}/{jobName}
:
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 } ] }
如果数据映射中的某个键被标识为敏感信息,其值将会被清理。
响应结构
响应包含任务的完整详细信息,包括与之相关的触发器摘要(如果有)。触发器按下次触发时间和优先级排序。下表描述了响应的结构:
路径 |
类型 |
描述 |
|
|
组的名称。 |
|
|
任务的名称。 |
|
|
任务的描述(如果有)。 |
|
|
任务实现的完全限定名称。 |
|
|
任务在孤立后是否应继续存储。 |
|
|
在遇到“恢复”或“故障转移”情况时,任务是否应重新执行。 |
|
|
任务数据映射(key/value对,如果有)。 |
|
|
与任务相关的触发器数组(如果有)。 |
|
|
触发器组的名称。 |
|
|
触发器的名称。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
获取触发器详情
要获取特定触发器的详细信息,可以按照以下基于 curl 的示例发送 GET
请求到 /actuator/quartz/triggers/{groupName}/{triggerName}
:
curl 'http://localhost:8080/actuator/quartz/triggers/samples/example' -i -X GET
上述示例获取了由 samples
组和 example
名称标识的触发器的详细信息。
通用响应结构
响应具有通用结构以及一个特定于触发器类型的额外对象。支持以下五种类型:
-
cron
表示CronTrigger
-
simple
表示SimpleTrigger
-
dailyTimeInterval
表示DailyTimeIntervalTrigger
-
calendarInterval
表示CalendarIntervalTrigger
-
custom
表示其他触发器实现
下表描述了响应中通用元素的结构:
路径 |
类型 |
描述 |
|
|
组的名称。 |
|
|
触发器的名称。 |
|
|
触发器的描述(如果有)。 |
|
|
触发器的状态 ( |
|
|
触发器的类型 ( |
|
|
与此触发器关联的日历名称(如果有)。 |
|
|
触发器应生效的时间(如果有)。 |
|
|
触发器应停止重复的时间(无论是否有剩余的重复次数)(如果有)。 |
|
|
触发器上次触发的时间(如果有)。 |
|
|
触发器计划下一次触发的时间(如果有)。 |
|
|
如果两个触发器具有相同的计划触发时间,则使用的优先级。 |
|
|
触发器最后一次触发的时间(如果有)。 |
|
|
任务数据映射(以名称为键,如果有)。 |
|
|
日历时间间隔触发器的详细信息(如果有,且类型为 calendarInterval)。 |
|
|
自定义触发器的详细信息(如果有,且类型为 custom)。 |
|
|
Cron 触发器的详细信息(如果有,且类型为 cron)。 |
|
|
每日时间间隔触发器的详细信息(如果有,且类型为 dailyTimeInterval)。 |
|
|
简单触发器的详细信息(如果有,且类型为 simple)。 |
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 } }
大部分响应对所有触发器类型都是通用的。前面已描述了 通用元素的结构。下表描述了与简单触发器相关的响应部分的结构:
路径 |
类型 |
描述 |
|
|
简单触发器的特定详细信息。 |
|
|
两次执行之间的间隔(以毫秒为单位)。 |
|
|
触发器应重复的次数,或 -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 表示。 |