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

时间:2013-12-11 10:30:28

标签: spring

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

如果一台机器服务发送电子邮件,那么我必须停止发送电子邮件的其他服务。

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

1 个答案:

答案 0 :(得分:2)

您基本上有3个选项:

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