Spring任务调度器多台机器上的多个实例检测

Spring任务调度器多台机器上的多个实例检测,spring,Spring,我制作了一个Spring任务调度服务,用于在特定条件下发送电子邮件。此服务正在多台计算机上运行 如果一个机器服务发送电子邮件,那么我必须停止另一个服务发送电子邮件 如何在不使用持久存储标志的情况下检测到这一点,即一台计算机服务已执行其电子邮件代码?您基本上有3个选项: 使用所有节点连接到的某种形式的共享数据存储(例如数据库)。这是我们通常做的事 使节点“相互对话”,以便特定节点可以在发送电子邮件之前检查其对等节点的状态。你可以用这个 让您的电子邮件服务仅在其中一个节点上运行

我制作了一个Spring任务调度服务,用于在特定条件下发送电子邮件。此服务正在多台计算机上运行

如果一个机器服务发送电子邮件,那么我必须停止另一个服务发送电子邮件


如何在不使用持久存储标志的情况下检测到这一点,即一台计算机服务已执行其电子邮件代码?

您基本上有3个选项:

  • 使用所有节点连接到的某种形式的共享数据存储(例如数据库)。这是我们通常做的事
  • 使节点“相互对话”,以便特定节点可以在发送电子邮件之前检查其对等节点的状态。你可以用这个
  • 让您的电子邮件服务仅在其中一个节点上运行