QuartzController(定时任务调度)¶
cn.myapps.job.QuartzController
基于 Quartz 的定时任务调度控制器,提供任务的新增、触发、暂停、恢复、重排、删除与列表查询能力。基址为 job 模块的 context-path 占位符 ${myapps.context-path.job:} 再加 /quartz(无 /api/rest 前缀)。
- 接口类型:REST 资源
- 类级注解:
@Controller(非@RestController,方法级@ResponseBody才返回 JSON / 字符串) - 基址:
${myapps.context-path.job:}/quartz - 鉴权:见 index.md 鉴权说明(无 token 强校验)
1. 新增定时任务¶
新增一个 Quartz 任务(含触发器),可由 cron 表达式或指定时间点触发。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/quartz/addObpmJob(完整:${myapps.context-path.job:}/quartz/addObpmJob) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| jobName | query/form | string | 否(无注解默认 required) | 任务名称,示例:helloJob;约定为 applicationId.taskId |
| jobGroup | query/form | string | 否 | 任务组,示例:helloJobGroup;约定为 domainId |
| triggerName | query/form | string | 否 | 触发器名称,示例:helloTrigger |
| triggerGroup | query/form | string | 否 | 触发器组,示例:helloTriggerGroup |
| jobXml | body | string (application/json) | 否(@RequestBody) |
任务 XML 描述字符串(与 IscriptTaskJob 启动时存的 jobXml 同构),作为 JobDataMap 字符串存储 |
| cron | query/form | string | 否 | cron 表达式,示例:0 0/1 * * * ? |
| date | query/form | long | 否 | 触发时间戳(毫秒),与 cron 二选一 |
| startNow | query/form | boolean | 否 | 是否立即启动 |
请求示例¶
POST /quartz/addObpmJob?jobName=helloJob&jobGroup=helloJobGroup&triggerName=helloTrigger&triggerGroup=helloTriggerGroup&cron=0%200%2F1%20*%20*%20*%20%3F&startNow=true HTTP/1.1
Content-Type: application/json
<jobXml 内容字符串>
响应¶
结构:text/plain 纯字符串(非 Resource)。
成功示例:
失败示例(异常被 catch,HTTP 状态仍 200):
2. 触发定时任务¶
立即触发一次指定任务(不影响其原调度)。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/quartz/triggerJob(完整:${myapps.context-path.job:}/quartz/triggerJob) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| jobName | query/form | string | 否 | 任务名称 |
| jobGroup | query/form | string | 否 | 任务组 |
请求示例¶
响应¶
结构:text/plain 纯字符串("ok" 或 "fail")。
3. 暂停任务¶
暂停指定任务(及其触发器)。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/quartz/pauseJob(完整:${myapps.context-path.job:}/quartz/pauseJob) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| jobName | query/form | string | 否 | 任务名称 |
| jobGroup | query/form | string | 否 | 任务组 |
请求示例¶
响应¶
结构:text/plain 纯字符串("ok" 或 "fail")。
4. 恢复任务¶
恢复(取消暂停)指定任务。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/quartz/resumeJob(完整:${myapps.context-path.job:}/quartz/resumeJob) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| jobName | query/form | string | 否 | 任务名称 |
| jobGroup | query/form | string | 否 | 任务组 |
请求示例¶
响应¶
结构:text/plain 纯字符串("ok" 或 "fail")。
5. 重排任务(reschedule)¶
按新的 cron 表达式重新调度指定触发器。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/quartz/rescheduleJob(完整:${myapps.context-path.job:}/quartz/rescheduleJob) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| triggerName | query/form | string | 否 | 触发器名称 |
| triggerGroup | query/form | string | 否 | 触发器组 |
| cron | query/form | string | 否 | 新的 cron 表达式 |
请求示例¶
POST /quartz/rescheduleJob?triggerName=helloTrigger&triggerGroup=helloTriggerGroup&cron=0%200%2F5%20*%20*%20*%20%3F HTTP/1.1
响应¶
结构:text/plain 纯字符串("ok" 或 "fail")。
6. 删除任务¶
删除指定任务及其触发器。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/quartz/deleteJob(完整:${myapps.context-path.job:}/quartz/deleteJob) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| jobName | query/form | string | 否 | 任务名称 |
| jobGroup | query/form | string | 否 | 任务组 |
| triggerName | query/form | string | 否 | 触发器名称 |
| triggerGroup | query/form | string | 否 | 触发器组 |
请求示例¶
POST /quartz/deleteJob?jobName=helloJob&jobGroup=helloJobGroup&triggerName=helloTrigger&triggerGroup=helloTriggerGroup HTTP/1.1
响应¶
结构:text/plain 纯字符串("ok" 或 "fail")。
7. 查询所有定时任务¶
列出调度器中所有任务,可按任务名关键字过滤;返回每个任务的 jobXml 解析结果(含 name、applicationId 等字段)、所属应用名(applicationName)和触发器状态(status)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/quartz/jobs(完整:${myapps.context-path.job:}/quartz/jobs) - 鉴权:否(无 token 强校验)
- Tag:(未在源码标注)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| searchword | query | string | 否 | 任务名过滤关键字(按 jobXml 中 name 字段包含匹配;不传则返回全部) |
请求示例¶
响应¶
结构:JSON 数组(非 Resource)。每个元素结构如下:
| 字段 | 类型 | 说明 |
|---|---|---|
| (jobXml 原字段) | 任意 | 由 XmlToJsonUtil.xmlToJson 解析 JobDataMap.jobXml 得到(含 name、applicationId、cron、description 等) |
| applicationName | string | 通过 ApplicationDesignTimeService.findById 查到的应用名(取 description,缺省取 name) |
| status | int | Quartz 触发器状态(Trigger.TriggerState 序数:NORMAL=0、PAUSED=1、BLOCKED=2 等) |
成功示例:
[
{
"name": "helloJob",
"applicationId": "__APPID__",
"applicationName": "示例应用",
"cron": "0 0/1 * * * ?",
"status": 0
}
]
失败示例(异常被 catch,HTTP 状态仍 200):