首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot,Cron作业同步

Spring Boot,Cron作业同步
EN

Stack Overflow用户
提问于 2017-12-26 21:58:39
回答 1查看 2.7K关注 0票数 4

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

目前,这2000种产品的加工时间超过5分钟。我遇到的问题是,当第一个Cron作业尚未完成时,第二个Cron作业就会运行。

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

请告诉我如何正确地实施这样的系统。无论如何,以下技术也可用于Neo4j,MongoDB,Kafka。请建议如何单独使用Spring/Cron,甚至与所提到的技术一起正确设计/实现此功能。

EN

回答 1

Stack Overflow用户

发布于 2017-12-27 00:14:21

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

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47979619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档