0

我们在集群环境中部署了一个应用程序。每 5 分钟,我们的应用程序就会向与其连接的所有其他应用程序发送一个 ping 操作。为了完成这项工作,我们使用了非持久性 Quartz 调度程序。

问题是在集群环境中只有一个节点在执行此活动(ping 操作)。是否有任何参考或任何示例代码?(这是一个普通的 servlet 应用程序。)

4

1 回答 1

0

由于所有节点都在集群中工作,因此每个作业只在一台机器上运行(最空闲的一台)。这就是您使用集群的原因。但是您希望所有机器独立运行给定的作业,而不知道其他集群节点。基本上,你根本不需要 Quartz(集群)!

使用就足够了ScheduledExecutorService.html#scheduleAtFixedRate()

final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

final Runnable pinger = new Runnable() {
    public void run() {
        //send PING
    }
};
scheduler.scheduleAtFixedRate(pinger, 5, 5, MINUTES);

只需在每台机器上运行此代码并在需要的地方使用 Quartz。

于 2012-10-16T16:54:42.287 回答