当前位置: 首页 > 知识库问答 >
问题:

Spring启动aws集群实例调度程序

乐正迪
2023-03-14

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

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

但是我的应用程序被部署在AWS EC2的两个实例上。因此,这个调度程序进程将在两个实例上运行,这将导致重复的集成调用。

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

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

请分享你的想法...谢了。

共有1个答案

澹台华采
2023-03-14

这里似乎回答了一个类似的问题:Spring Scheduled Task在集群环境中运行

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

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

 类似资料:
  • 我的we应用程序A将扫描业务相关的数据库表,并在启动期间和之后每10分钟安排石英作业。如果我在两个不同的tomcat实例上部署两个A应用程序,那么将有两组通过Quartz调度的重复作业。 我该如何解决这个问题?我是否需要将调度作业的部分代码提取到单独的应用程序中,并确保只部署了1个实例,从而只调度了1组作业?但是问题变成了--如果这个实例失败了怎么办?在这种情况下,如何实现故障转移?

  • 我们的(Spring)应用程序包含几个,这些调度器在夜间活动,以更改/更新中的一些数据(来自 )。 这一切都运行良好,问题是我们的应用程序很快就会在运行。 防止< code >实例A和< code >实例B的< code >调度程序同时执行相同工作的最佳选项是什么? **UPDATE** 群集环境设置为。 每个节点都与自己的数据库实例通信。每个数据库实例将数据复制到其他实例。 DB-实例不是设置为

  • Struts2并没有附带任何现成“Struts2-Quartz.jar”之类的插件,黑客可能会使用标准的 Servlet 监听将两个框架链接在一起。请参阅它们的关系 在本教程中,我们将学习如何将Struts2和Quartz调度框架集成在一起。 使用的工具: Struts 2.1.4 Quartz 2.1.5 Tomcat 6/7 MyEclipse 10 1. 调度作业 创建Quartz调度作业任

  • 我想把spring注释@Scheduled添加到spring bean中,并在另一个类中的方法中启动task。在spring引用中只有一种启动task的方法--Scheduling-Tasks。如何在没有@SpringBootApplication和Spring Boot运行器的情况下启动它。

  • 我有Spring启动应用程序与三个弹性搜索群集(ES v6.4.2)配置。application.properties文件如下(我为每个集群配置了三个主节点,但为了简单起见,这里显示了一个): 对于每个集群,我都有一个单独的配置类,在其中设置TransportClient和ElasticsearchTemplate。 现在,当我在本地计算机上运行所有三个集群的情况下本地启动应用程序时,应用程序会正