增加时间段限制

功能建议 · 505 次浏览
不将就-Tao 创建于 2024-08-20 16:15

想要在"8:30-12:00"和"14:30-18:00"时间段, 每分钟触发一次.

目前无法用Cron表达式表示, 希望增加时间段限制的功能;

或是完善识别非整数的换算, 比如可以识别:   * * 8.5-12,14.5-18 * * 1-5


回复内容
CL 2024-08-20 16:17
#1

可以在动作里获取当前时间判断一下,直接停止动作。

不将就-Tao 回复 CL 2024-08-20 18:29 :

好的,目前确实是这么处理的, 感谢回复❤️

CL 回复 不将就-Tao 2024-08-20 19:48 :

Cron表达式本身并不直接支持小数或具体的时间范围像“8:30-12:00”和“14:30-18:00”这样。但你可以通过组合多条Cron表达式来实现你想要的效果。下面是一个可以实现你要求的方案:


你想要在 "8:30-12:00" 和 "14:30-18:00" 这两个时间段内,每分钟触发一次任务。我们可以通过以下两个Cron表达式组合来实现:


1. **"8:30-12:00" 每分钟触发一次:**


   ```

   * 30-59 8 * * *  # 从 8:30 到 8:59,每分钟触发

   * * 9-11 * * *   # 从 9:00 到 11:59,每分钟触发

   * 0 12 * * *     # 在 12:00 触发一次

   ```


2. **"14:30-18:00" 每分钟触发一次:**


   ```

   * 30-59 14 * * *  # 从 14:30 到 14:59,每分钟触发

   * * 15-17 * * *   # 从 15:00 到 17:59,每分钟触发

   * 0 18 * * *      # 在 18:00 触发一次

   ```


将这些表达式组合起来就可以覆盖你想要的时间范围内的每分钟触发:


```bash

* 30-59 8 * * *  # 从 8:30 到 8:59

* * 9-11 * * *   # 从 9:00 到 11:59

* 0 12 * * *     # 在 12:00 触发一次


* 30-59 14 * * *  # 从 14:30 到 14:59

* * 15-17 * * *   # 从 15:00 到 17:59

* 0 18 * * *      # 在 18:00 触发一次

```


每个表达式都可以用于不同的时间段来确保覆盖所需的整个时间范围。如果你的调度系统支持多个Cron表达式的组合,那么这些表达式就能满足你的需求。

CL 回复 不将就-Tao 2024-08-20 19:48 :

这是chatgpt给的回答,供参考。

不将就-Tao 2024-08-21 18:34
#2

感谢指导,我知道用什么思路了

回复主贴