【发布时间】:2012-06-22 11:03:35
【问题描述】:
我已将 terracotteJobStore 与 Quartz-Scheduler 绑定
terracotteJobStore 如何确定下一个作业应该为哪个节点执行?
terracotteJobStore 中的节点选择使用哪种算法知道吗??
【问题讨论】:
标签: algorithm quartz-scheduler terracotta
我已将 terracotteJobStore 与 Quartz-Scheduler 绑定
terracotteJobStore 如何确定下一个作业应该为哪个节点执行?
terracotteJobStore 中的节点选择使用哪种算法知道吗??
【问题讨论】:
标签: algorithm quartz-scheduler terracotta
如果 'Quartz Scheduler' 与 'TerracotteJobStore' 一起使用,并且接下来有任何作业要执行,那么该作业的节点选择将是随机的。
使用“Qurtz Where”可以根据标准制作 Job。 意味着如果你想制作一个必须在核心至少为 2 的节点上运行的作业,或者 制作在平均 CPU 负载为 70% 的节点上运行的作业或 制作在至少具有 Java 堆可用内存 330 MB 的节点上运行的作业 在这种情况下,“Quartz Where”很有用。
只有在“Quartz Where”的情况下,才能预测Job在哪个Node上执行。
【讨论】:
使用 OS Terracotta 的 JobStore,您无法决定作业将在哪个节点上执行。并不是说它真的是随机发生的,而是调度程序在非集群模式下的行为。所以基本上,每个节点都会以固定的时间间隔,并根据下一个触发器触发何时获取下一个触发器。由于集群中所有节点的行为方式相同,因此最先获得锁的节点也将能够先获得触发器。
Terracotta EE 带有 Quartz Where 功能,可让您描述应在何处解雇工作。你可以通过观看这个简短的截屏视频了解更多关于 Quartz Where 的信息:http://www.codespot.net/blog/2011/03/quartz-where-screencast/
希望这会有所帮助。
【讨论】: