datai/docs/archive/api-docs/monitor/SysJobController/0008-delete-job.md

145 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 接口文档 - 删除定时任务
## 接口信息
- **接口名称**: 删除定时任务
- **接口路径**: /monitor/job/{jobIds}
- **请求方法**: DELETE
- **模块归属**: 定时任务管理
- **版本号**: v1.0
- **创建日期**: 2026-01-13
- **最后更新**: 2026-01-13
## 功能描述
删除一个或多个定时任务,删除后会从数据库和 Quartz 调度器中移除该任务。支持批量删除多个任务。
## 请求参数
### 路径参数
| 参数名 | 类型 | 必填 | 描述 | 示例 |
|--------|------|------|------|------|
| jobIds | Long[] | 是 | 任务ID数组多个ID用逗号分隔 | 1,2,3 |
## 响应数据
### 成功响应
**HTTP 状态码**: 200 OK
```json
{
"code": 200,
"msg": "操作成功"
}
```
| 字段名 | 类型 | 描述 | 示例 |
|--------|------|------|------|
| code | Integer | 响应码 | 200 |
| msg | String | 响应消息 | 操作成功 |
### 失败响应
**HTTP 状态码**: 500 Internal Server Error
```json
{
"code": 500,
"msg": "删除失败",
"data": null
}
```
| 错误码 | 错误信息 | 描述 |
|--------|----------|------|
| 500 | 删除失败 | 删除任务时发生错误 |
| 403 | 没有权限访问 | 当前用户没有 monitor:job:remove 权限 |
## 接口示例
### 请求示例
```bash
# 删除单个任务
curl -X DELETE "http://localhost:8080/monitor/job/1" \
-H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9..."
# 批量删除多个任务
curl -X DELETE "http://localhost:8080/monitor/job/1,2,3" \
-H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9..."
```
### 响应示例
**成功**:
```json
{
"code": 200,
"msg": "操作成功"
}
```
**失败**:
```json
{
"code": 500,
"msg": "删除失败",
"data": null
}
```
## 错误处理
- 当任务ID不存在时跳过该任务继续删除其他任务
- 当用户没有 `monitor:job:remove` 权限时,返回 403 错误
- 删除失败时返回 500 错误
- 删除操作会被记录在系统日志中
## 注意事项
- 需要登录认证
- 需要 `monitor:job:remove` 权限
- 支持批量删除多个任务
- 删除操作不可逆,请谨慎操作
- 删除后会从数据库中移除任务记录
- 删除后会从 Quartz 调度器中移除任务
- 删除正在执行的任务不会中断当前执行
- 删除任务会同时删除相关的执行日志
- 删除操作会被记录在系统日志中
## 相关接口
- [查询定时任务列表](0001-job-list.md) - 查询任务列表
- [获取定时任务详细信息](0003-get-info.md) - 获取任务详情
- [修改定时任务状态](0006-change-status.md) - 暂停任务而不是删除
## 实现细节
- 通过 `ISysJobService.deleteJobByIds()` 方法删除任务
- 支持批量删除传入任务ID数组
- 删除前会从 Quartz 调度器中移除任务
- 删除后会从数据库中删除任务记录
- 删除操作是原子性的,要么全部成功要么全部失败
- 使用 `@Log` 注解记录删除操作
- 删除失败时会抛出 SchedulerException 或 TaskException
## 测试信息
### 测试环境
- **环境**: 开发环境
- **版本**: v1.0
### 测试用例
| 测试场景 | 输入参数 | 预期结果 | 实际结果 | 状态 |
|----------|----------|----------|----------|------|
| 删除单个任务 | jobIds=1 | 删除成功 | 删除成功 | 通过 |
| 批量删除多个任务 | jobIds=1,2,3 | 删除成功 | 删除成功 | 通过 |
| 删除不存在的任务 | jobIds=9999 | 跳过该任务 | 跳过该任务 | 通过 |
| 无权限访问 | 无权限用户 | 返回403错误 | 返回403错误 | 通过 |