我正在寻找一些用于安排大量任务的通用库。该库必须能够跨群集中的节点分割任务,执行负载平衡和容错 - 因此,如果某个节点出现故障,则必须将该节点的任务分布在其余节点上。
我查看了Hadoop - 但看起来它适用于map-reduce任务。在我的情况下,任务只是通知的发送者,对象状态的检查器等。
Quartz似乎很棒 - 但是当它归结为向节点分派事件时,它还不清楚它有多好。
还有其他选择吗?
答案 0 :(得分:7)
听起来像是Akka的用例。
答案 1 :(得分:3)
我同意克里斯蒂安认为阿卡似乎更合适。 Quartz非常适合它的功能,但它的基本构建块是一个应该执行的Job。它不会帮助您将作业分解为可分发的组件。
如果您的所有任务都可以分解为作业,那么Quartz可以帮助您安排它们,这就是它最擅长的。但是如果一个工作需要分解成子任务,那么你将需要使用另一个框架。
另一个选项可能是spring batch,具体取决于您的需求。
答案 2 :(得分:1)
您可以尝试ProActive,这是一个与Java集成的工作流程调度程序(用Java编写)。 它支持您列出的功能。 它是一个开源项目,是OW2的一部分。
例如,可以使用以下功能:
[免责声明]我是Activeeon的一部分,该公司为ProActive提供专业支持[/ disclaimer]
答案 3 :(得分:0)
或者您也可以尝试Quartz,它几乎可以处理您想要的任何内容:)