3.1 KiB
3.1 KiB
定时任务快速参考
📌 核心信息
| 项目 | 内容 |
|---|---|
| 服务类 | LabelPdfCacheBackgroundService |
| 执行间隔 | 每5分钟 |
| 处理范围 | 失效缓存、待处理任务、新订单 |
| 时间限制 | 新订单仅处理 >= 2026-05-10 |
🚀 常用命令
查看状态
curl -X GET http://localhost:5002/api/label/background-service/status
暂停任务
curl -X POST http://localhost:5002/api/label/background-service/pause
恢复任务
curl -X POST http://localhost:5002/api/label/background-service/resume
查看缓存统计
curl -X GET http://localhost:5002/api/label/cache-statistics
📂 文件位置
| 文件 | 路径 |
|---|---|
| 服务主类 | src/CONTROLLER/BackgroundServices/LabelPdfCacheBackgroundService.cs |
| 服务管理器 | src/CONTROLLER/BackgroundServices/BackgroundServiceManager.cs |
| 业务逻辑 | src/BLL/Services/LabelPdfCacheService.cs |
| 数据访问 | src/DAL/Repositories/LabelPdfCacheRepository.cs |
⏱️ 配置参数
执行间隔
文件: LabelPdfCacheBackgroundService.cs 第18行
private const int TaskIntervalMinutes = 5;
改为所需的分钟数
批处理大小
文件: LabelPdfCacheService.cs ProcessPendingTasksAsync方法
public async Task<int> ProcessPendingTasksAsync(int maxRetryCount = 3, int batchSize = 100)
调整 batchSize 参数
时间限制日期
文件: LabelPdfCacheRepository.cs GetNewOrdersWithLabelsForBackgroundTaskAsync方法
var cutoffDate = new DateTime(2026, 5, 10, 0, 0, 0);
改为所需的日期
🔄 工作流程
每5分钟执行一次:
├─ 处理失效缓存 (Status=3)
├─ 处理待处理任务 (Status=0 或 Status=2)
└─ 处理新订单 (>= 2026-05-10 的有标签订单)
✅ 检查清单
- 定时任务是否正在运行? → 查看状态
- 是否有待处理任务堆积? → 查看缓存统计
- 新订单是否被自动处理? → 检查创建时间是否 >= 2026-05-10
- 定时任务是否遇到错误? → 查看日志文件
🆘 快速故障排查
| 问题 | 解决方案 |
|---|---|
| 定时任务不执行 | 检查是否暂停,查看日志 |
| 新订单未被处理 | 检查创建时间,检查是否有标签 |
| 任务堆积 | 调整批处理大小或手动处理 |
| 错误重复发生 | 暂停任务,调查问题,恢复 |
📊 关键指标
从 /api/label/cache-statistics 获取:
- totalRecords: 总缓存数
- successRecords: 成功数
- failedRecords: 失败数
- pendingRecords: 待处理数
- averageParseDurationMs: 平均耗时
- withBarcodeRecords: 含条码数
🔗 相关文档
- 定时任务暂停指南 - 如何控制定时任务
- 执行范围修改说明 - 时间限制详解
- 定时任务与API隔离 - API与定时任务的区别
最后更新: 2026-05-14