gpt4 book ai didi

java - * 和 ? 之间的区别在 Spring @Scheduled(cron =".....")

转载 作者:IT老高 更新时间:2023-10-28 13:47:35 24 4
gpt4 key购买 nike

我一直在查看用于调度任务的 Spring Boot 示例 (https://spring.io/guides/gs/scheduling-tasks/) 并阅读了一些文档 (https://javahunter.wordpress.com/2011/05/05/cronscheduler-in-spring/),我看到 * 和 ?几乎可以互换使用。

例如行

@Scheduled(cron = "0 15 10 ? * *")

@Scheduled(cron = "0 15 10 * * ?")

做同样的事情。那么 * 和 有什么区别呢?

最佳答案

教程已过时。符号 ? 与符号 * 的意思完全相同

从 Spring 版本 3.1.2.RELEASE 开始,调用层次结构如下:

  1. 构造函数CronTrigger(String)调用构造函数CronSequenceGenerator(String)
  2. CronSequenceGenerator(String) 调用 parse(String)
  3. parse(String) 调用 setDays(BitSet bits, String field, int max)

它的实现很明确:

private void setDays(BitSet bits, String field, int max) {
if (field.contains("?")) {
field = "*";
}
setNumberHits(bits, field, 0, max);
}

那么,如果是?,那么*

关于java - * 和 ? 之间的区别在 Spring @Scheduled(cron ="....."),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30341067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com