Quartz (quartz)

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

检索注册组

作业和触发器以组为单位进行管理。要检索已注册作业和触发器组的列表,请向 /actuator/quartz 发出 GET 请求,如以下基于 curl 的示例所示

$ curl 'https://: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" ]
  }
}

响应结构

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

路径 类型 描述

jobs.groups

数组

作业组名数组。

triggers.groups

数组

触发器组名数组。

检索已注册作业名

要检索已注册作业名的列表,请向 /actuator/quartz/jobs 发出 GET 请求,如以下基于 curl 的示例所示

$ curl 'https://: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" ]
    }
  }
}

响应结构

响应包含每个组的已注册作业名。下表描述了响应的结构

路径 类型 描述

groups

对象

按名称键控的作业组。

groups.*.jobs

数组

作业名数组。

检索已注册触发器名

要检索已注册触发器名的列表,请向 /actuator/quartz/triggers 发出 GET 请求,如以下基于 curl 的示例所示

$ curl 'https://: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" ]
    }
  }
}

响应结构

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

路径 类型 描述

groups

对象

按名称键控的触发器组。

groups.*.paused

布尔值

此触发器组是否已暂停。

groups.*.triggers

数组

触发器名数组。

检索作业组概述

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

$ curl 'https://: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"
    }
  }
}

响应结构

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

路径 类型 描述

group

字符串

组名。

jobs

对象

按名称键控的作业详细信息。

jobs.*.className

字符串

作业实现的完全限定名。

检索触发器组概述

要检索特定组中触发器的概述,请向 /actuator/quartz/triggers/{groupName} 发出 GET 请求,如以下基于 curl 的示例所示

$ curl 'https://: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: 1233

{
  "group" : "tests",
  "paused" : false,
  "triggers" : {
    "calendarInterval" : {
      "once-a-week" : {
        "previousFireTime" : "2020-12-02T14:00:00.000Z",
        "nextFireTime" : "2020-12-08T14:00:00.000Z",
        "priority" : 5,
        "interval" : 604800000,
        "timeZone" : "Etc/UTC"
      }
    },
    "cron" : {
      "3am-week" : {
        "previousFireTime" : "2020-12-04T03:00:00.000Z",
        "nextFireTime" : "2020-12-07T03:00:00.000Z",
        "priority" : 3,
        "expression" : "0 0 3 ? * 1,2,3,4,5",
        "timeZone" : "Europe/Paris"
      }
    },
    "custom" : {
      "once-a-year-custom" : {
        "previousFireTime" : "2020-07-14T16:00:00.000Z",
        "nextFireTime" : "2021-07-14T16:00:00.000Z",
        "priority" : 10,
        "trigger" : "com.example.CustomTrigger@fdsfsd"
      }
    },
    "dailyTimeInterval" : {
      "tue-thu" : {
        "priority" : 5,
        "interval" : 3600000,
        "daysOfWeek" : [ 3, 5 ],
        "startTimeOfDay" : "09:00:00",
        "endTimeOfDay" : "18:00:00"
      }
    },
    "simple" : {
      "every-day" : {
        "nextFireTime" : "2020-12-04T12:00:00.000Z",
        "priority" : 7,
        "interval" : 86400000
      }
    }
  }
}

响应结构

响应包含特定组中触发器的概述。提供了触发器实现特定的详细信息。下表描述了响应的结构

路径 类型 描述

group

字符串

组名。

paused

布尔值

组是否已暂停。

triggers.cron

对象

按名称键控的 Cron 触发器(如果有)。

triggers.simple

对象

按名称键控的简单触发器(如果有)。

triggers.dailyTimeInterval

对象

按名称键控的每日时间间隔触发器(如果有)。

triggers.calendarInterval

对象

按名称键控的日历间隔触发器(如果有)。

triggers.custom

对象

按名称键控的任何其他触发器(如果有)。

triggers.cron.*.previousFireTime

字符串

触发器上次触发的时间(如果有)。

triggers.cron.*.nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

triggers.cron.*.priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

triggers.cron.*.expression

字符串

要使用的 Cron 表达式。

triggers.cron.*.timeZone

字符串

将解析表达式的时区(如果有)。

triggers.simple.*.previousFireTime

字符串

触发器上次触发的时间(如果有)。

triggers.simple.*.nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

triggers.simple.*.priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

triggers.simple.*.interval

数字

两次执行之间的间隔(以毫秒为单位)。

triggers.dailyTimeInterval.*.previousFireTime

字符串

触发器上次触发的时间(如果有)。

triggers.dailyTimeInterval.*.nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

triggers.dailyTimeInterval.*.priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

triggers.dailyTimeInterval.*.interval

数字

添加到触发时间的时间间隔(以毫秒为单位),用于计算下次触发器重复的时间。

triggers.dailyTimeInterval.*.daysOfWeek

数组

要触发的星期几数组。

triggers.dailyTimeInterval.*.startTimeOfDay

字符串

以给定间隔开始触发的一天中的时间(如果有)。

triggers.dailyTimeInterval.*.endTimeOfDay

字符串

以给定间隔完成触发的一天中的时间(如果有)。

triggers.calendarInterval.*.previousFireTime

字符串

触发器上次触发的时间(如果有)。

triggers.calendarInterval.*.nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

triggers.calendarInterval.*.priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

triggers.calendarInterval.*.interval

数字

添加到触发时间的时间间隔(以毫秒为单位),用于计算下次触发器重复的时间。

triggers.calendarInterval.*.timeZone

字符串

将执行时间计算的时区(如果有)。

triggers.custom.*.previousFireTime

字符串

触发器上次触发的时间(如果有)。

triggers.custom.*.nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

triggers.custom.*.priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

triggers.custom.*.trigger

字符串

自定义触发器实例的 toString 表示。

检索作业详情

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

$ curl 'https://: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: 594

{
  "className" : "org.springframework.scheduling.quartz.DelegatingJob",
  "data" : {
    "password" : "secret",
    "user" : "admin"
  },
  "description" : "A sample job",
  "durable" : false,
  "group" : "samples",
  "name" : "jobOne",
  "requestRecovery" : false,
  "triggers" : [ {
    "group" : "samples",
    "name" : "every-day",
    "previousFireTime" : "2020-12-04T03:00:00.000Z",
    "nextFireTime" : "2020-12-04T12:00:00.000Z",
    "priority" : 7
  }, {
    "group" : "samples",
    "name" : "3am-weekdays",
    "nextFireTime" : "2020-12-07T03:00:00.000Z",
    "priority" : 3
  } ]
}

如果数据映射中的键被标识为敏感,则其值将被清理。

响应结构

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

路径 类型 描述

group

字符串

组名。

name

字符串

作业名称。

描述

字符串

作业描述(如果有)。

className

字符串

作业实现的完全限定名。

durable

布尔值

作业在成为孤立作业后是否应保留存储。

requestRecovery

布尔值

如果遇到“恢复”或“故障转移”情况,作业是否应重新执行。

data.*

字符串

作业数据映射,以键/值对形式(如果有)。

triggers

数组

与作业关联的触发器数组(如果有)。

triggers.[].group

字符串

触发器组名。

triggers.[].name

字符串

触发器名称。

triggers.[].previousFireTime

字符串

触发器上次触发的时间(如果有)。

triggers.[].nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

triggers.[].priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

按需触发 Quartz 作业

要触发特定的 Quartz 作业,请向 /actuator/quartz/jobs/{groupName}/{jobName} 发出 POST 请求,如以下基于 curl 的示例所示

$ curl 'https://:8080/actuator/quartz/jobs/samples/jobOne' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{"state":"running"}'

前面的示例演示了如何触发属于 samples 组且名为 jobOne 的作业。

响应将类似于以下内容

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 169

{
  "className" : "org.springframework.scheduling.quartz.DelegatingJob",
  "group" : "samples",
  "name" : "jobOne",
  "triggerTime" : "2025-11-20T16:33:57.906247204Z"
}

请求结构

请求指定与特定作业关联的所需 state。发送带有 "state": "running" 主体的 HTTP 请求表示作业现在应该运行。下表描述了请求的结构

路径 类型 描述

state

字符串

作业的所需状态。

响应结构

响应包含已触发作业的详细信息。下表描述了响应的结构

路径 类型 描述

group

字符串

组名。

name

字符串

作业名称。

className

字符串

作业实现的完全限定名。

triggerTime

字符串

作业触发时间。

检索触发器详情

要检索特定触发器的详细信息,请向 /actuator/quartz/triggers/{groupName}/{triggerName} 发出 GET 请求,如以下基于 curl 的示例所示

$ curl 'https://:8080/actuator/quartz/triggers/samples/example' -i -X GET

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

通用响应结构

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

  • cron 用于 CronTrigger

  • simple 用于 SimpleTrigger

  • dailyTimeInterval 用于 DailyTimeIntervalTrigger

  • calendarInterval 用于 CalendarIntervalTrigger

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

下表描述了响应的通用元素的结构

路径 类型 描述

group

字符串

组名。

name

字符串

触发器名称。

描述

字符串

触发器描述(如果有)。

state

字符串

触发器状态(NONENORMALPAUSEDCOMPLETEERRORBLOCKED)。

类型

字符串

触发器类型(calendarIntervalcroncustomdailyTimeIntervalsimple)。确定包含特定类型详细信息的对象的键。

calendarName

字符串

与此触发器关联的日历名称(如果有)。

startTime

字符串

触发器应生效的时间(如果有)。

endTime

字符串

触发器应停止重复的时间,无论剩余重复次数如何(如果有)。

previousFireTime

字符串

触发器上次触发的时间(如果有)。

nextFireTime

字符串

触发器预定下次触发的时间(如果有)。

priority

数字

如果两个触发器具有相同的预定触发时间,则使用的优先级。

finalFireTime

字符串

触发器最后一次触发的时间(如果有)。

data

对象

按名称键控的作业数据映射(如果有)。

calendarInterval

对象

日历时间间隔触发器详细信息(如果有)。当 typecalendarInterval 时存在。

custom

对象

自定义触发器详细信息(如果有)。当 typecustom 时存在。

cron

对象

Cron 触发器详细信息(如果有)。当 typecron 时存在。

dailyTimeInterval

对象

每日时间间隔触发器详细信息(如果有)。当 typedailyTimeInterval 时存在。

simple

对象

简单触发器详细信息(如果有)。当 typesimple 时存在。

Cron 触发器响应结构

cron 触发器定义了用于确定何时触发的 cron 表达式。此类触发器实现的响应类似于以下内容

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 518

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "NORMAL",
  "type" : "cron",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000Z",
  "endTime" : "2020-12-30T03:00:00.000Z",
  "previousFireTime" : "2020-12-04T03:00:00.000Z",
  "nextFireTime" : "2020-12-07T03:00:00.000Z",
  "priority" : 3,
  "finalFireTime" : "2020-12-30T02:00:00.000Z",
  "data" : { },
  "cron" : {
    "expression" : "0 0 3 ? * 1,2,3,4,5",
    "timeZone" : "Europe/Paris"
  }
}

大部分响应是所有触发器类型通用的。响应的通用元素结构前面已描述。下表描述了响应中特定于 cron 触发器的部分结构

路径 类型 描述

cron

对象

Cron 触发器特定详细信息。

cron.expression

字符串

要使用的 Cron 表达式。

cron.timeZone

字符串

将解析表达式的时区(如果有)。

简单触发器响应结构

简单触发器用于在给定时间触发作业,并可选择以指定间隔重复。此类触发器实现的响应类似于以下内容

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 524

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "NORMAL",
  "type" : "simple",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000Z",
  "endTime" : "2020-12-30T03:00:00.000Z",
  "previousFireTime" : "2020-12-04T03:00:00.000Z",
  "nextFireTime" : "2020-12-07T03:00:00.000Z",
  "priority" : 7,
  "finalFireTime" : "2020-12-29T17:00:00.000Z",
  "data" : { },
  "simple" : {
    "interval" : 86400000,
    "repeatCount" : -1,
    "timesTriggered" : 0
  }
}

大部分响应是所有触发器类型通用的。响应的通用元素结构前面已描述。下表描述了响应中特定于简单触发器的部分结构

路径 类型 描述

simple

对象

简单触发器特定详细信息。

simple.interval

数字

两次执行之间的间隔(以毫秒为单位)。

simple.repeatCount

数字

触发器应重复的次数,或 -1 表示无限重复。

simple.timesTriggered

数字

触发器已触发的次数。

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

每日时间间隔触发器用于根据每日重复的时间间隔触发作业。此类触发器实现的响应类似于以下内容

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 642

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "PAUSED",
  "type" : "dailyTimeInterval",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000Z",
  "endTime" : "2020-12-30T03:00:00.000Z",
  "previousFireTime" : "2020-12-04T03:00:00.000Z",
  "nextFireTime" : "2020-12-07T03:00:00.000Z",
  "priority" : 5,
  "finalFireTime" : "2020-12-30T18:00:00.000Z",
  "data" : { },
  "dailyTimeInterval" : {
    "interval" : 3600000,
    "daysOfWeek" : [ 3, 5 ],
    "startTimeOfDay" : "09:00:00",
    "endTimeOfDay" : "18:00:00",
    "repeatCount" : -1,
    "timesTriggered" : 0
  }
}

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

路径 类型 描述

dailyTimeInterval

对象

每日时间间隔触发器特定详细信息。

dailyTimeInterval.interval

数字

添加到触发时间的时间间隔(以毫秒为单位),用于计算下次触发器重复的时间。

dailyTimeInterval.daysOfWeek

数组

要触发的星期几数组。

dailyTimeInterval.startTimeOfDay

字符串

以给定间隔开始触发的一天中的时间(如果有)。

dailyTimeInterval.endTimeOfDay

字符串

以给定间隔完成触发的一天中的时间(如果有)。

dailyTimeInterval.repeatCount

数字

触发器应重复的次数,或 -1 表示无限重复。

dailyTimeInterval.timesTriggered

数字

触发器已触发的次数。

日历间隔触发器响应结构

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

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 644

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "NORMAL",
  "type" : "calendarInterval",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000Z",
  "endTime" : "2020-12-30T03:00:00.000Z",
  "previousFireTime" : "2020-12-04T03:00:00.000Z",
  "nextFireTime" : "2020-12-07T03:00:00.000Z",
  "priority" : 5,
  "finalFireTime" : "2020-12-28T17:00:00.000Z",
  "data" : { },
  "calendarInterval" : {
    "interval" : 604800000,
    "timeZone" : "Etc/UTC",
    "timesTriggered" : 0,
    "preserveHourOfDayAcrossDaylightSavings" : false,
    "skipDayIfHourDoesNotExist" : false
  }
}

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

路径 类型 描述

calendarInterval

对象

日历间隔触发器特定详细信息。

calendarInterval.interval

数字

添加到触发时间的时间间隔(以毫秒为单位),用于计算下次触发器重复的时间。

calendarInterval.timeZone

字符串

将执行时间计算的时区(如果有)。

calendarInterval.timesTriggered

数字

触发器已触发的次数。

calendarInterval.preserveHourOfDayAcrossDaylightSavings

布尔值

无论夏令时转换如何,是否在一天中的同一时间触发。

calendarInterval.skipDayIfHourDoesNotExist

布尔值

如果给定日期中不存在小时,是否跳过该天。

自定义触发器响应结构

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

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 437

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger.",
  "state" : "NORMAL",
  "type" : "custom",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000Z",
  "endTime" : "2020-12-30T03:00:00.000Z",
  "previousFireTime" : "2020-12-04T03:00:00.000Z",
  "nextFireTime" : "2020-12-07T03:00:00.000Z",
  "priority" : 10,
  "custom" : {
    "trigger" : "com.example.CustomTrigger@fdsfsd"
  }
}

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

路径 类型 描述

custom

对象

自定义触发器特定详细信息。

custom.trigger

字符串

自定义触发器实例的 toString 表示。

© . This site is unofficial and not affiliated with VMware.