用于Java的通用分布式调度库

时间:2012-05-16 13:06:52

标签: java distributed schedule

我正在寻找一些用于安排大量任务的通用库。该库必须能够跨群集中的节点分割任务,执行负载平衡和容错 - 因此,如果某个节点出现故障,则必须将该节点的任务分布在其余节点上。

我查看了Hadoop - 但看起来它适用于map-reduce任务。在我的情况下,任务只是通知的发送者,对象状态的检查器等。

Quartz似乎很棒 - 但是当它归结为向节点分派事件时,它还不清楚它有多好。

还有其他选择吗?

4 个答案:

答案 0 :(得分:7)

听起来像是Akka的用例。

答案 1 :(得分:3)

我同意克里斯蒂安认为阿卡似乎更合适。 Quartz非常适合它的功能,但它的基本构建块是一个应该执行的Job。它不会帮助您将作业分解为可分发的组件。

如果您的所有任务都可以分解为作业,那么Quartz可以帮助您安排它们,这就是它最擅长的。但是如果一个工作需要分解成子任务,那么你将需要使用另一个框架。

另一个选项可能是spring batch,具体取决于您的需求。

答案 2 :(得分:1)

您可以尝试ProActive,这是一个与Java集成的工作流程调度程序(用Java编写)。 它支持您列出的功能。 它是一个开源项目,是OW2的一部分。

例如,可以使用以下功能:

  • 工作流程,即具有依赖关系和构造的任务集,例如loop / if / replication
  • 任务在节点上执行,即在不同机器上运行的代理
  • 任务可以在节点故障时自动重新启动

[免责声明]我是Activeeon的一部分,该公司为ProActive提供专业支持[/ disclaimer]

答案 3 :(得分:0)

或者您也可以尝试Quartz,它几​​乎可以处理您想要的任何内容:)