gpt4 book ai didi

Spring Boot,Cron作业同步

转载 作者:行者123 更新时间:2023-12-05 00:49:14 24 4
gpt4 key购买 nike

在我的 Spring Boot 应用程序中,基于 Cron 作业(每 5 分钟运行一次),我需要处理数据库中的 2000 个产品。

目前这 2000 个产品的处理时间需要 5 分钟以上。我遇到了在第一个 Cron 作业尚未完成时运行第二个 Cron 作业的问题。

Spring/Cron 中是否有开箱即用的功能允许同步这些作业并在开始下一个作业之前等待上一个作业完成?

请告知如何正确实现此类系统。 Anyway,下面的技术Neo4j、MongoDB、Kafka也是可以的。请告知如何使用 Spring/Cron 单独或什至与上述技术一起正确设计/实现此功能。

最佳答案

1) 您可以尝试使用@Scheduled(fixedDelay = 5*60*1000)。它将保证下一次调用严格在上一次调用完成后的 5 分钟内发生。但这可能会破坏您的调度要求

2) 您可以将底层 ThreadExecutor 的池大小限制为 1 个线程,因此下一次调用必须等到上一次调用完成,但这同样会破坏逻辑,因为它会影响 调用的所有周期性任务>@预定

3)可以使用Quartz代替spring原生的@Scheduled。配置起来更复杂,但允许通过 @DisallowConcurrentExecution 注释或通过在作业详细信息中设置 JobDetail::isConcurrentExectionDisallowed 实现所需的行为

关于Spring Boot,Cron作业同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47979619/

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