我在集群模式下使用 Quartz Scheduler。出于调试目的,我想将所有服务器实例置于待机模式。
假设我们有三个服务器实例:
每个节点上运行一个单独的调度程序。如果我调用“scheduler.standby()”,它只会将一个调度程序置于待机模式。如何让所有调度器同时进入待机模式?这可以从单个节点完成吗?
您可以通过在公共数据库表中存储和跟踪所有节点的状态来做到这一点。 要做到这一点:
server_node_state
的表,其中包含列 node_id 、 Scheduler_status 1,N 2、N 3、N
scheduler.standby()
,就调用更新表中的 scheduler_status
列,并将该特定节点 ID 的标志值设置为 Y
。all node ids
列 Scheduler_status 的值,如果任何节点 id Scheduler_status 为 Y,则为它们调用 scheduler.standby()
。N
更新该列。注意: 对于将来添加的任何节点,您只需在表中插入条目并遵循相同的逻辑即可。