Java 如何等待@Scheduled直到上一个任务未完成?

Java 如何等待@Scheduled直到上一个任务未完成?,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,我想哀号我的调度程序,直到我的任务完成。如果有时间执行第二个调度,它必须等到上一个任务没有完成。 我在java启动应用程序中使用@Schedule。 我想每5分钟向数据库中插入一次数据,但我想保留我的时间表,直到插入的数据还没有完成,还有时间进行第二次执行。演示代码 @Scheduled(fixedRate = 2000) public void scheduleTaskWithFixedRate() { logger.info("Fixed Rate Task :: E

我想哀号我的调度程序,直到我的任务完成。如果有时间执行第二个调度,它必须等到上一个任务没有完成。 我在java启动应用程序中使用@Schedule。 我想每5分钟向数据库中插入一次数据,但我想保留我的时间表,直到插入的数据还没有完成,还有时间进行第二次执行。演示代码

@Scheduled(fixedRate = 2000)
    public void scheduleTaskWithFixedRate() {
        logger.info("Fixed Rate Task :: Execution Time - {}", dateTimeFormatter.format(LocalDateTime.now()) );
    }

使用
fixedDelay
,而不是
fixedDelay

@Scheduled(fixedDelay = 2000)
该任务将连续运行
fixedDelay
毫秒

在上一次调用结束和下一次调用开始之间以毫秒为单位执行带注释的方法


使用
fixedDelay
,而不是
fixedDelay

@Scheduled(fixedDelay = 2000)
该任务将连续运行
fixedDelay
毫秒

在上一次调用结束和下一次调用开始之间以毫秒为单位执行带注释的方法


使用
fixedDelay

fixedRate:使Spring定期运行任务,即使最后一次调用可能仍在运行

修复延迟:特别控制最后一次执行完成时的下一次执行时间。 代码:


使用
fixedDelay

fixedRate:使Spring定期运行任务,即使最后一次调用可能仍在运行

修复延迟:特别控制最后一次执行完成时的下一次执行时间。 代码:

您应该在@scheduled注释中使用initialDelay属性,以便等待一段时间


你应该使用带有@scheduled注解的initialDelay道具等待一段时间。

查看检查链接和读取点编号5。查看检查链接和读取点编号5。我做了一个演示,
fixedRate
fixedDelay
都可以,为什么?:有人能回答spring的“cron expression”吗像“fixedDelay”那样等待任务完成?我做了一个演示,
fixedDelay
fixedDelay
都可以,为什么?:有人能回答spring的“cron expression”是否像“fixedDelay”那样等待任务完成如果任务阻塞了执行线程,
fixedRate
fixedDelay
没有区别吗?@TongChen有区别。假设您阻塞了线程5分钟。因此,根据上述配置,下一个计划将仅在5分钟5秒后执行。“当最后一次执行完成时。”如果任务阻塞执行线程,
fixedRate
fixedDelay
没有区别?@TongChen有区别。假设您阻塞了线程5分钟。因此,根据上述配置,下一个计划将仅在5分钟5秒后执行。“当最后一次执行完成时。”
@Scheduled(fixedDelay = 1000, initialDelay = 1000)