我们有很多批处理工作要处理
现在的问题是我们有7个不同的节点,它们部署了相同的应用程序(我们使用JBoss AS 7.1.1作为应用程序服务器),我们使用Spring批处理使用石英调度程序来安排作业。它工作得很好。
但是我们的节点中有一个是差异时间,然后是其他节点(例如假设我们有3个节点A,B,C,所以当C在那里时间为12:00:00时,A和B中的时间为11:58:00 )并且所有这些节点都由客户端维护。
因此,当任何触发器触发时(我们使用cron触发器)作业仅在单个节点上运行
现在特定的时间(从12:00开始)我们需要触发多个作业,然后所有这些作业都在一个节点上运行,因为所有这些作业都在其他节点之前超时(因为12:00时钟发生在A和B之前的C)。
我想知道我们是否有任何这样的机制,我们可以参考任何集中的时间来超时所有批处理过程(例如,当C上有12个O时钟但是在运行批处理作业时不要超时批处理在DB中有12个O时钟..?
在此先感谢:)。
答案 0 :(得分:0)
要求您的客户使用NTP同步服务器。您的所有服务器都应具有相同的时间周期。如果您允许服务器彼此不同步,您将遇到许多其他问题。
答案 1 :(得分:0)
Spring Batch提供了通过spring-batch-integration模块中的消息启动作业的工具。我建议从中心点管理调度,并根据服务器运行作业的可用性将消息发送到要接收的服务器。这也将解决时间同步的问题,因为调度片将在中心点处理。