我有大约 5 台服务器。我想在每台机器上运行一个相同的 Spring/Tomcat 应用程序。
我还需要每十分钟执行一次特定任务。它应该只在其中一台机器上运行。我需要某种选举协议(protocol)或其他类似的解决方案。
Spring 或 Quartz 是否有任何内置的分布式 cron 解决方案,还是我需要自己实现一些东西?
最佳答案
Hazelcast 有一个分布式执行器框架,您可以使用它来使用 JDK 执行器框架运行作业(顺便说一下,它可能比可怕的 Quartz 更可测试......也许)。它有多种操作模式,包括让它“随机”选择一个节点来执行你的工作。
见 the documentation更多细节
关于分布式环境中的 Springquartz/cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782134/