【问题标题】:Spring boot aws cluster instance schedulerSpring Boot aws 集群实例调度器
【发布时间】:2019-07-02 06:19:32
【问题描述】:

我有一个 spring-boot 应用程序,它接受用户的请求并将数据保存在数据库中。

保存的数据需要进行某些集成调用。所以我认为每 15 分钟有一个调度程序任务,它应该选择这些数据并进行必要的调用。

但我的应用程序正在 AWS EC2 中部署在 2 个实例上。所以这个调度程序进程将在两个实例上运行,这将导致重复的集成调用。

关于如何实现这一点以避免重复调用的任何建议。

到目前为止,我还没有任何代码可以分享。

请分享您的想法...谢谢。

【问题讨论】:

    标签: spring-boot scheduled-tasks


    【解决方案1】:

    这里似乎回答了类似的问题:Spring Scheduled Task running in clustered environment

    我的看法: 1) 简单 - 您可以将计划进程与服务请求流量的实例移到一个单独的实例中,并且只在一个实例上运行它,如果您愿意的话,它是一个“作业服务器”。

    2) 最具可扩展性 - 在两个实例上执行计划任务,但它们必须以某种方式同步谁处于活动状态和谁处于待机状态(可能使用 AWS Elasticache 等缓存)。或者您可以切换到使用具有 JDBCJobStore 持久性的 Quartz 作业调度程序,它可以协调 2 个实例中的哪一个来运行作业。 http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-09.html

    【讨论】:

    • 第 1 项听起来很有希望,也可以是一个长期的解决方案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2022-11-05
    • 1970-01-01
    • 2017-09-05
    • 2016-12-05
    • 2021-12-02
    相关资源
    最近更新 更多