一种方法的多个@Scheduled注释

Multiple @Scheduled annotations at one method

提问人:jnemecz 提问时间:5/5/2021 更新时间:5/5/2021 访问量:1999

问:

是否允许/在一种方法中使用多个@Scheduled注释?

@Scheduled(cron = "0 5 0 * * *", zone = "Europe/Stockholm")
@Scheduled(fixedRate = 1000 * 60 * 20, initialDelay = 1000 * 60 * 5)
public void setSalariesAsArchived() {
//...
}
java spring-boot 定时任务

评论


答:

11赞 Yassin Hajaj 5/5/2021 #1

是的,这是完全合法的,就像 Javadoc 中所述的注解一样@Schedules@Scheduled@Repeatable

聚合多个批注的容器批注。 可以本机使用,声明多个嵌套注释。也可以与 Java 8 对可重复注解的支持结合使用,其中可以简单地在同一方法上多次声明,隐式生成此容器注解。ScheduledScheduledScheduled

因此,您可以像以前一样使用它,也可以像以下示例中那样使用它来包装它@Schedules

@Schedules({
    @Scheduled(cron = "0 5 0 * * *", zone = "Europe/Stockholm"),
    @Scheduled(fixedRate = 1000 * 60 * 20, initialDelay = 1000 * 60 * 5)
})
public void setSalariesAsArchived() {
//...
}