java中的非持久Quartz调度程序

时间:2012-10-15 12:13:00

标签: java quartz-scheduler

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

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

1 个答案:

答案 0 :(得分: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。