Files
AIGC/demo/POLLING_SCHEDULE_SUMMARY.md

58 lines
2.0 KiB
Markdown
Raw Normal View History

# 轮询查询调度总结
## 概述
所有后端轮询查询任务已统一设置为每2分钟执行一次确保系统按您的要求进行轮询查询。
## 轮询任务配置
### 1. TaskQueueScheduler.java
- **processPendingTasks()**: `@Scheduled(fixedRate = 120000)` - 每2分钟处理待处理任务
- **checkTaskStatuses()**: `@Scheduled(fixedRate = 120000)` - 每2分钟检查任务状态
- **cleanupExpiredTasks()**: `@Scheduled(cron = "0 0 2 * * ?")` - 每天凌晨2点清理过期任务
- **cleanupExpiredFailedWorks()**: `@Scheduled(cron = "0 0 3 * * ?")` - 每天凌晨3点清理过期失败作品
### 2. TaskStatusPollingService.java
- **pollTaskStatuses()**: `@Scheduled(fixedRate = 120000)` - 每2分钟轮询任务状态
### 3. PollingQueryService.java
- **executePollingQuery()**: `@Scheduled(fixedRate = 120000)` - 每2分钟执行轮询查询
## 时间间隔说明
### 轮询查询任务每2分钟
- **间隔**: 120000毫秒 = 2分钟
- **功能**: 查询任务队列中的任务状态
- **执行内容**:
- 查找正在处理的任务
- 调用外部API查询状态
- 更新任务状态(完成/失败/超时)
- 处理积分扣除和返还
### 清理任务(每天执行)
- **过期任务清理**: 每天凌晨2点
- **失败作品清理**: 每天凌晨3点
## 轮询流程
```
每2分钟 → 自动执行 → 查询任务队列 → 检查任务状态 → 更新状态 → 记录日志
```
## 确认信息
**所有轮询查询任务都是2分钟间隔**
**没有30秒或其他短间隔的轮询任务**
**系统将每2分钟查询任务队列中的任务**
**轮询查询功能已完整实现**
## 总结
系统现在完全按照您的要求配置:
- **轮询间隔**: 每2分钟
- **查询对象**: 任务队列中的任务
- **执行内容**: 状态查询和更新
- **日志记录**: 完整的操作日志
后端将每2分钟进行一次轮询查询查询任务队列中的任务状态确保任务状态的及时更新。