跳到主要内容

Quartz (quartz)

DeepSeek V3 中英对照 Quartz (quartz) Quartz (quartz)

quartz 端点提供了由 Quartz 调度器管理的作业和触发器的信息。

检索已注册的组

作业和触发器是以组的形式进行管理的。要获取已注册的作业和触发器组的列表,可以向 /actuator/quartz 发起 GET 请求,如下面基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/quartz' -i -X GET
bash

生成的响应类似于以下内容:

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" ]
}
}
http

响应结构

响应中包含了已注册作业和触发器的组名称。下表描述了响应的结构:

路径类型描述
jobs.groupsArray任务组名称的数组。
triggers.groupsArray触发器组名称的数组。

获取已注册的任务名称

要获取已注册作业名称的列表,可以向 /actuator/quartz/jobs 发送一个 GET 请求,如下面的基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/quartz/jobs' -i -X GET
bash

生成的响应类似于以下内容:

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" ]
}
}
}
http

响应结构

响应中包含每个组已注册的任务名称。下表描述了响应的结构:

路径类型描述
groupsObject按名称键控的作业组。
groups.*.jobsArray作业名称的数组。

获取已注册的触发器名称

要获取已注册触发器名称的列表,可以向 /actuator/quartz/triggers 发送一个 GET 请求,如下面基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/quartz/triggers' -i -X GET
bash

生成的响应类似于以下内容:

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" ]
}
}
}
http

响应结构

响应中包含了每个组已注册的触发器名称。下表描述了响应的结构:

路径类型描述
groupsObject按名称分组的触发器组。
groups.*.pausedBoolean该触发器组是否暂停。
groups.*.triggersArray触发器名称的数组。

获取作业组概述

要检索特定组中作业的概览,请向 /actuator/quartz/jobs/{groupName} 发起 GET 请求,如下面的基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/quartz/jobs/samples' -i -X GET
bash

前面的示例检索了 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"
}
}
}
http

响应结构

响应包含特定组中作业的概览。下表描述了响应的结构:

路径类型描述
groupString组的名称。
jobsObject按名称索引的作业详细信息。
jobs.*.classNameString作业实现的完全限定名称。

获取触发器组的概述

要检索特定组中触发器的概览,可以向 /actuator/quartz/triggers/{groupName} 发起一个 GET 请求,如下所示 curl 示例:

$ curl 'http://localhost:8080/actuator/quartz/triggers/tests' -i -X GET
bash

前面的示例检索了 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"
}
}
}
}
http

响应结构

响应包含特定组中触发器的概述。触发器实现的具体细节是可用的。下表描述了响应的结构:

路径类型描述
groupString组的名称。
pausedBoolean组是否已暂停。
triggers.cronObject按名称索引的 Cron 触发器(如果有)。
triggers.simpleObject按名称索引的简单触发器(如果有)。
triggers.dailyTimeIntervalObject按名称索引的每日时间间隔触发器(如果有)。
triggers.calendarIntervalObject按名称索引的日历间隔触发器(如果有)。
triggers.customObject按名称索引的其他触发器(如果有)。
triggers.cron.*.previousFireTimeString触发器上次触发的时间(如果有)。
triggers.cron.*.nextFireTimeString触发器计划下次触发的时间(如果有)。
triggers.cron.*.priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。
triggers.cron.*.expressionString使用的 Cron 表达式。
triggers.cron.*.timeZoneString表达式将解析的时区(如果有)。
triggers.simple.*.previousFireTimeString触发器上次触发的时间(如果有)。
triggers.simple.*.nextFireTimeString触发器计划下次触发的时间(如果有)。
triggers.simple.*.priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。
triggers.simple.*.intervalNumber两次执行之间的间隔,以毫秒为单位。
triggers.dailyTimeInterval.*.previousFireTimeString触发器上次触发的时间(如果有)。
triggers.dailyTimeInterval.*.nextFireTimeString触发器计划下次触发的时间(如果有)。
triggers.dailyTimeInterval.*.priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。
triggers.dailyTimeInterval.*.intervalNumber添加到触发时间以计算下次触发重复时间的间隔,以毫秒为单位。
triggers.dailyTimeInterval.*.daysOfWeekArray触发器的每周触发日期的数组。
triggers.dailyTimeInterval.*.startTimeOfDayString开始按给定间隔触发的时间(如果有)。
triggers.dailyTimeInterval.*.endTimeOfDayString完成按给定间隔触发的时间(如果有)。
triggers.calendarInterval.*.previousFireTimeString触发器上次触发的时间(如果有)。
triggers.calendarInterval.*.nextFireTimeString触发器计划下次触发的时间(如果有)。
triggers.calendarInterval.*.priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。
triggers.calendarInterval.*.intervalNumber添加到触发时间以计算下次触发重复时间的间隔,以毫秒为单位。
triggers.calendarInterval.*.timeZoneString执行时间计算的时区(如果有)。
triggers.custom.*.previousFireTimeString触发器上次触发的时间(如果有)。
triggers.custom.*.nextFireTimeString触发器计划下次触发的时间(如果有)。
triggers.custom.*.priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。
triggers.custom.*.triggerString自定义触发器实例的字符串表示形式。

获取作业详情

要检索特定作业的详细信息,请向 /actuator/quartz/jobs/{groupName}/{jobName} 发起一个 GET 请求,如下所示基于 curl 的示例:

$ curl 'http://localhost:8080/actuator/quartz/jobs/samples/jobOne' -i -X GET
bash

前面的示例获取了由 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
} ]
}
http

如果数据映射中的某个键被识别为敏感信息,其值将被进行脱敏处理。

响应结构

响应包含作业的完整详细信息,包括与之关联的触发器摘要(如果有)。触发器按下次触发时间和优先级排序。下表描述了响应的结构:

路径类型描述
groupString组的名称。
nameString任务的名称。
descriptionString任务的描述(如果有)。
classNameString任务实现的完全限定名称。
durableBoolean任务在孤立后是否应保持存储。
requestRecoveryBoolean如果遇到“恢复”或“故障转移”情况,任务是否应重新执行。
data.*String任务数据映射为键/值对(如果有)。
triggersArray与任务关联的触发器数组(如果有)。
triggers.[].groupString触发器组的名称。
triggers.[].nameString触发器的名称。
triggers.[].previousFireTimeString触发器上次触发的时间(如果有)。
triggers.[].nextFireTimeString触发器计划触发的下次时间(如果有)。
triggers.[].priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。

获取触发器的详细信息

要获取特定触发器的详细信息,请向 /actuator/quartz/triggers/{groupName}/{triggerName} 发送一个 GET 请求,如下面的基于 curl 的示例所示:

$ curl 'http://localhost:8080/actuator/quartz/triggers/samples/example' -i -X GET
bash

前面的示例检索了由 samples 组和 example 名称标识的触发器的详细信息。

通用响应结构

响应具有一个通用结构以及一个特定于触发器类型的附加对象。共有五种支持的类型:

  • cron 用于 CronTrigger

  • simple 用于 SimpleTrigger

  • dailyTimeInterval 用于 DailyTimeIntervalTrigger

  • calendarInterval 用于 CalendarIntervalTrigger

  • custom 用于其他任何触发器实现

下表描述了响应中常见元素的结构:

路径类型描述
groupString组的名称。
nameString触发器的名称。
descriptionString触发器的描述(如果有)。
stateString触发器的状态(NONE, NORMAL, PAUSED, COMPLETE, ERROR, BLOCKED)。
typeString触发器的类型(calendarInterval, cron, custom, dailyTimeInterval, simple)。决定包含类型特定详细信息的对象的键。
calendarNameString与此触发器关联的日历的名称(如果有)。
startTimeString触发器应生效的时间(如果有)。
endTimeString触发器应停止重复的时间,无论是否还有剩余重复次数(如果有)。
previousFireTimeString触发器上次触发的时间(如果有)。
nextFireTimeString触发器计划下次触发的时间(如果有)。
priorityNumber如果两个触发器具有相同的计划触发时间,则使用的优先级。
finalFireTimeString触发器最后一次触发的时间(如果有)。
dataObject按名称索引的作业数据映射(如果有)。
calendarIntervalObject日历时间间隔触发器的详细信息(如果有)。当 typecalendarInterval 时存在。
customObject自定义触发器的详细信息(如果有)。当 typecustom 时存在。
cronObjectCron 触发器的详细信息(如果有)。当 typecron 时存在。
dailyTimeIntervalObject每日时间间隔触发器的详细信息(如果有)。当 typedailyTimeInterval 时存在。
simpleObject简单触发器的详细信息(如果有)。当 typesimple 时存在。

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"
}
}
http

大部分响应对于所有触发器类型都是通用的。响应中通用部分的结构之前已经描述过。下表描述了特定于 cron 触发器的响应部分的结构:

路径类型描述
cronObjectCron 触发器特定细节。
cron.expressionString使用的 Cron 表达式。
cron.timeZoneString表达式解析的时区,如果有的话。

简单的触发器响应结构

一个简单的触发器用于在给定的时间点触发任务,并可以选择性地按照指定的时间间隔重复执行。这种触发器实现的结果响应类似于以下内容:

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
}
}
http

大部分响应对于所有触发器类型都是通用的。响应中通用元素的结构在之前的部分已经描述过。下表描述了简单触发器特有的响应部分的结构:

路径类型描述
simpleObject简单触发器的具体细节。
simple.intervalNumber两次执行之间的间隔时间,以毫秒为单位。
simple.repeatCountNumber触发器应重复的次数,或 -1 表示无限重复。
simple.timesTriggeredNumber触发器已经触发的次数。

每日时间间隔触发器响应结构

一个每日时间间隔触发器用于基于每日重复的时间间隔来触发作业。此类触发器实现的响应结果类似于以下内容:

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
}
}
http

大部分的响应对于所有触发器类型都是通用的。响应中通用部分的结构已在前面描述。下表描述了针对每日时间间隔触发器的响应特定部分的结构:

路径类型描述
dailyTimeIntervalObject每日时间间隔触发的具体细节。
dailyTimeInterval.intervalNumber以毫秒为单位的间隔,添加到触发时间以计算下一次重复触发的时间。
dailyTimeInterval.daysOfWeekArray一周中的哪几天触发的数组。
dailyTimeInterval.startTimeOfDayString开始触发的时间,如果有的话。
dailyTimeInterval.endTimeOfDayString结束触发的时间,如果有的话。
dailyTimeInterval.repeatCountNumber触发器应重复的次数,或 -1 表示无限重复。
dailyTimeInterval.timesTriggeredNumber触发器已经触发的次数。

日历间隔触发器响应结构

日历间隔触发器用于基于重复的日历时间间隔触发作业。此类触发器实现的响应结果类似于以下内容:

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

大部分响应对于所有触发器类型都是通用的。响应中通用元素的结构已在前文中描述。下表描述了特定于日历间隔触发器的响应部分的结构:

路径类型描述
calendarIntervalObject日历间隔触发器的特定详情。
calendarInterval.intervalNumber间隔时间,以毫秒为单位,添加到触发时间以计算下一次触发器重复的时间。
calendarInterval.timeZoneString执行时间计算的时区(如果有)。
calendarInterval.timesTriggeredNumber触发器已经触发的次数。
calendarInterval.preserveHourOfDayAcrossDaylightSavingsBoolean是否在一天中的相同时间触发触发器,无论是否跨越夏令时转换。
calendarInterval.skipDayIfHourDoesNotExistBoolean如果某一天中不存在指定的小时,是否跳过该天。

自定义触发器响应结构

自定义触发器是任何其他实现。此类触发器实现所产生的响应类似于以下内容:

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"
}
}
http

大部分的响应对于所有触发器类型都是通用的。响应中通用部分的结构已在之前的部分中描述。下表描述了自定义触发器特有的响应部分的结构:

路径类型描述
customObject自定义触发器特定的详细信息。
custom.triggerString自定义触发器实例的字符串表示。