# 功能优化 - 定时间隔改为分钟 v3.7.2 ## 📌 更新时间 2025-10-07 ## 🎯 优化目标 ### 用户反馈 > "定时设置中的间隔执行,执行间隔的单位设置为分钟,更加精准" ### 核心需求 将定时任务的"间隔执行"单位从"小时"改为"分钟",以提供更精准的定时控制。 ## ✨ 主要改进 ### 改进1: UI界面单位调整 #### 优化前 ``` 执行间隔: [4 ▲▼] 小时 提示:任务将每隔4小时自动执行一次 最大值:24小时 最小值:1小时 ``` #### 优化后 ``` 执行间隔: [240 ▲▼] 分钟 提示:任务将每隔240分钟自动执行一次 (约4小时) 最大值:1440分钟(24小时) 最小值:1分钟 ``` **改进点**: - ✅ 单位从"小时"改为"分钟" - ✅ 最大值从24提升到1440(保持24小时上限) - ✅ 最小值从1小时降低到1分钟(精度提升60倍) - ✅ 智能提示:≥60分钟时自动显示小时换算 ### 改进2: 智能时间格式化 新增 `formatInterval` 函数,智能转换显示格式: ```javascript formatInterval(30) → "30分钟" formatInterval(60) → "1小时" formatInterval(90) → "1小时30分钟" formatInterval(120) → "2小时" formatInterval(240) → "4小时" formatInterval(1440) → "24小时" ``` **显示规则**: - **< 60分钟**:显示"X分钟" - **整小时**:显示"X小时"(如60分钟 → 1小时) - **混合**:显示"X小时Y分钟"(如90分钟 → 1小时30分钟) ### 改进3: 后端逻辑调整 #### taskScheduler.js ```javascript // 优化前 const intervalMs = config.interval * 60 * 60 * 1000 // 小时 → 毫秒 console.log(`⏰ 间隔调度启动: 每${config.interval}小时执行一次`) // 优化后 const intervalMs = config.interval * 60 * 1000 // 分钟 → 毫秒 console.log(`⏰ 间隔调度启动: 每${config.interval}分钟执行一次`) ``` #### 默认配置调整 ```javascript // 优化前 schedulerConfig: { interval: 4 // 4小时 } // 优化后 schedulerConfig: { interval: 240 // 240分钟 = 4小时 } ``` ## 📊 精度对比 ### 优化前(单位:小时) ``` 可选范围:1-24小时 精度:1小时 可选值:24个(1, 2, 3, ... 24) 示例: - 无法设置30分钟 - 无法设置1.5小时 - 无法设置90分钟 ``` ### 优化后(单位:分钟) ``` 可选范围:1-1440分钟(1分钟-24小时) 精度:1分钟 可选值:1440个(1, 2, 3, ... 1440) 示例: ✅ 可以设置30分钟 ✅ 可以设置90分钟(1小时30分钟) ✅ 可以设置15分钟 ✅ 可以设置任意分钟数 ``` **精度提升**:**60倍**(从1小时到1分钟) ## 🎯 使用场景 ### 场景1: 高频测试 ``` 设置:15分钟 用途:频繁测试批量任务 优势:快速验证功能 ``` ### 场景2: 半小时执行 ``` 设置:30分钟 用途:高频率自动化 优势:比1小时更及时 ``` ### 场景3: 1.5小时执行 ``` 设置:90分钟(显示为"1小时30分钟") 用途:精准控制执行间隔 优势:不受整小时限制 ``` ### 场景4: 传统4小时 ``` 设置:240分钟(显示为"4小时") 用途:常规定时任务 优势:与原配置等效 ``` ### 场景5: 极限测试 ``` 设置:1分钟 用途:极限压力测试 优势:最高频率执行 ⚠️ 注意:不建议生产环境使用 ``` ## 📝 UI显示效果 ### 配置界面 ``` ┌─────────────────────────────────────┐ │ 定时类型: │ │ ◉ 间隔执行 ○ 每日定时 │ ├─────────────────────────────────────┤ │ 执行间隔: │ │ [240 ▲▼] 分钟 │ │ │ │ 任务将每隔240分钟自动执行一次 │ │ (约4小时) ← 智能换算提示 │ └─────────────────────────────────────┘ ``` ### 状态显示(各种格式) ``` 间隔: 15分钟 → "定时任务:每15分钟" 间隔: 30分钟 → "定时任务:每30分钟" 间隔: 60分钟 → "定时任务:每1小时" 间隔: 90分钟 → "定时任务:每1小时30分钟" 间隔: 120分钟 → "定时任务:每2小时" 间隔: 240分钟 → "定时任务:每4小时" 间隔: 1440分钟 → "定时任务:每24小时" ``` ### 快速控制栏 ``` ┌────────────────────────────────────────────┐ │ ⏰ 定时任务运行中 - 每4小时自动执行 │ │ [配置] [停用] │ └────────────────────────────────────────────┘ ``` ## 🔧 技术实现 ### 文件修改清单 #### 1. SchedulerConfig.vue ```vue size="large" >

任务将每隔{{ formData.interval }}分钟自动执行一次 {{ formData.interval >= 60 ? ` (约${Math.floor(formData.interval / 60)}小时${formData.interval % 60 > 0 ? formData.interval % 60 + '分钟' : ''})` : '' }}

``` #### 2. BatchTaskPanel.vue ```javascript // 第625-636行:新增格式化函数 const formatInterval = (minutes) => { if (minutes < 60) { return `${minutes}分钟` } else if (minutes % 60 === 0) { return `${minutes / 60}小时` } else { const hours = Math.floor(minutes / 60) const mins = minutes % 60 return `${hours}小时${mins}分钟` } } // 所有显示"小时"的地方都改用 formatInterval() ``` #### 3. taskScheduler.js ```javascript // 第37-40行 startIntervalSchedule(config, callback) { const intervalMs = config.interval * 60 * 1000 // 分钟转毫秒 console.log(`⏰ 间隔调度启动: 每${config.interval}分钟执行一次`) // ... } ``` #### 4. batchTaskStore.js ```javascript // 第102-110行 schedulerConfig: ref({ enabled: false, type: 'interval', interval: 240, // 默认240分钟 = 4小时 // ... }) ``` ## 📊 兼容性处理 ### 旧数据迁移 **问题**:现有用户的配置中 `interval` 可能是小时值(如4) **解决方案**: 1. **自动识别**:如果 `interval < 24`,可能是旧配置 2. **用户自主调整**:用户打开定时设置后会看到当前值 3. **明确提示**:界面显示"分钟"单位,用户可自行调整 **示例**: ``` 用户原配置:interval = 4 (原意:4小时) 界面显示:4分钟 用户调整:改为240分钟(4小时) ``` **建议**: - 首次更新后,检查定时任务配置 - 如果间隔异常短,手动调整为合适的分钟数 ## ⚠️ 注意事项 ### 1. 最小间隔建议 - ✅ 推荐:≥ 15分钟(给服务器足够休息时间) - ⚠️ 谨慎:5-15分钟(适合测试) - ❌ 不推荐:< 5分钟(可能导致服务器压力过大) ### 2. 合理设置 ``` 测试环境:15-30分钟 开发环境:30-60分钟 生产环境:120-240分钟(2-4小时) ``` ### 3. 性能影响 - **1分钟间隔**:每天执行1440次(极高频率) - **15分钟间隔**:每天执行96次(高频率) - **60分钟间隔**:每天执行24次(中频率) - **240分钟间隔**:每天执行6次(低频率) ### 4. 服务器负载 执行间隔越短,服务器负载越高: - **1-5分钟**:极高负载,仅用于测试 - **15-30分钟**:较高负载,短期可用 - **60-120分钟**:中等负载,长期可用 - **240分钟+**:低负载,推荐生产环境 ## 🎯 推荐配置 ### 不同需求的推荐间隔 | 使用场景 | 推荐间隔 | 说明 | |---------|---------|------| | **快速测试** | 15分钟 | 验证功能是否正常 | | **频繁监控** | 30分钟 | 需要及时获取结果 | | **常规使用** | 60分钟 | 每小时执行一次 | | **中等频率** | 120分钟 | 每2小时执行一次 | | **推荐配置** | 240分钟 | 每4小时执行一次(默认) | | **低频执行** | 480分钟 | 每8小时执行一次 | | **极低频** | 1440分钟 | 每天执行一次 | ## 📅 版本信息 - **版本号**: v3.7.2 - **更新日期**: 2025-10-07 - **更新类型**: 功能优化 - **优先级**: 中 - **影响范围**: 定时任务配置 ## 🔗 相关文件 1. `src/components/SchedulerConfig.vue` - 定时任务配置界面 2. `src/components/BatchTaskPanel.vue` - 批量任务主面板 3. `src/utils/taskScheduler.js` - 任务调度逻辑 4. `src/stores/batchTaskStore.js` - 批量任务状态管理 ## 🎉 总结 通过这次优化: 1. **精度提升**:从1小时到1分钟,提升60倍 2. **灵活性增强**:可设置任意分钟间隔 3. **用户体验**:智能格式化显示,易读易懂 4. **向下兼容**:保留原有功能,不破坏现有配置 现在用户可以更精准地控制定时任务的执行频率,满足各种不同的使用场景!🎯