代码之家  ›  专栏  ›  技术社区  ›  Ben

Spring计划的fixedRateString作为持续时间

  •  1
  • Ben  · 技术社区  · 6 年前

    @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的错误还是我做错了什么 ?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Erik Pragt    6 年前

    您看到的是方法的返回值,而不是输入。输入只能是以毫秒为单位的字符串,但返回值是符合持续时间的值。

        2
  •  4
  •   Bruno Morais    3 年前

    要对持续时间使用@Scheduled(fixedRateString)方法,可以使用具有标准持续时间的字符串:

    @Scheduled(fixedRateString = "PT45S")
    

    前缀PT表示 ISO-8601 standard 在这个例子中,它的平均持续时间是45秒。

    另一个例子是持续时间为1h:

    @Scheduled(fixedRateString = "PT1H")