如何停止 Spring @Scheduled 排队作业
How to stop Spring @Scheduled from queuing up jobs
我使用 @Scheduled 注释每两分钟编写一次代码 运行ning。但是,我们的工作往往 运行 的时间更长。据我了解,@Scheduled 注释将新作业排队,并在第一个作业完成后立即 运行s 它们。我不希望这种情况发生。我希望作业 运行ning 只有 1 个实例并且没有排队的实例。我该怎么做?
@Scheduled(cron = "0 */2 * * * ?")
public void twoMinMethod() {
// code here
}
如果您不需要 运行 准时执行作业,您可能需要切换到其他非 crontab 语法,这将允许此类操作。下面的示例将执行该方法,完成后等待两分钟,然后再次执行。
@Scheduled(fixedDelay=120000)
public void twoMinMethod() { ... }
在 Spring Documentation 查看更多信息。
我使用 @Scheduled 注释每两分钟编写一次代码 运行ning。但是,我们的工作往往 运行 的时间更长。据我了解,@Scheduled 注释将新作业排队,并在第一个作业完成后立即 运行s 它们。我不希望这种情况发生。我希望作业 运行ning 只有 1 个实例并且没有排队的实例。我该怎么做?
@Scheduled(cron = "0 */2 * * * ?")
public void twoMinMethod() {
// code here
}
如果您不需要 运行 准时执行作业,您可能需要切换到其他非 crontab 语法,这将允许此类操作。下面的示例将执行该方法,完成后等待两分钟,然后再次执行。
@Scheduled(fixedDelay=120000)
public void twoMinMethod() { ... }
在 Spring Documentation 查看更多信息。