Spring 计划的 fixedRateString 作为持续时间
Spring scheduled fixedRateString as Duration
@Scheduled
documentation here 表示 fixedRateString
值可以是 the delay in milliseconds as a String value, e.g. a placeholder or a java.time.Duration compliant value
。意思是我可以写
@Scheduled(fixedRateString = "45s")
或
@Scheduled(fixedRateString = "45000")
而且应该是一样的。但是,当我尝试 运行 它时,我得到
Encountered invalid @Scheduled method 'updateWarmupInstances': Invalid fixedRateString value "45s" - cannot parse into long
所以这是 Spring 的错误还是我做错了什么
?
您正在查看方法的 return 值,而不是输入。输入只能是毫秒级的String,但是return值是一个符合Duration.
的值
要对持续时间使用方法@Scheduled(fixedRateString),您可以使用具有标准持续时间的字符串:
@Scheduled(fixedRateString = "PT45S")
前缀 PT 用于 ISO-8601 standard,在此示例中,它表示持续时间为 45 秒。
另一个例子可以是 1 小时的持续时间:
@Scheduled(fixedRateString = "PT1H")
@Scheduled
documentation here 表示 fixedRateString
值可以是 the delay in milliseconds as a String value, e.g. a placeholder or a java.time.Duration compliant value
。意思是我可以写
@Scheduled(fixedRateString = "45s")
或
@Scheduled(fixedRateString = "45000")
而且应该是一样的。但是,当我尝试 运行 它时,我得到
Encountered invalid @Scheduled method 'updateWarmupInstances': Invalid fixedRateString value "45s" - cannot parse into long
所以这是 Spring 的错误还是我做错了什么 ?
您正在查看方法的 return 值,而不是输入。输入只能是毫秒级的String,但是return值是一个符合Duration.
的值要对持续时间使用方法@Scheduled(fixedRateString),您可以使用具有标准持续时间的字符串:
@Scheduled(fixedRateString = "PT45S")
前缀 PT 用于 ISO-8601 standard,在此示例中,它表示持续时间为 45 秒。
另一个例子可以是 1 小时的持续时间:
@Scheduled(fixedRateString = "PT1H")