gpt4 book ai didi

java - 可以检查 `@Scheduled` 方法是否已完成执行吗?

转载 作者:行者123 更新时间:2023-12-02 08:55:41 26 4
gpt4 key购买 nike

我正在使用 @Scheduled 作为我的方法之一。

是否有办法检查之前的@Scheduled任务是否已完成执行?

例如,如果我们有一个 @Scheduled 每 60 秒运行一次,但有时该方法需要 80 秒才能完成。是否有办法阻止该方法再次运行,除非它已完成执行?

最佳答案

我想您正在使用@Scheduled(fixedRate = 60000)

在这种情况下,您不必担心任务可能重叠,因为它们在一个线程中一致执行。

ScheduledAnnotationBeanPostProcessor 在底层使用 ScheduledTaskRegistrar,后者又使用 ScheduledExecutorService(参见 docssource code )。

来自 the docs ScheduledExecutorServicescheduleAtFixedRate方法中,我们可以清楚地看到,

If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.

关于java - 可以检查 `@Scheduled` 方法是否已完成执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500346/

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