集群环境下的Quartz Job/Trigger监听器,如何监听每个节点?

问题描述 投票:0回答:1

我已经使用 Quartz 和集群环境构建了一个项目。 当一个未选举的节点到达CronTrigger时,我想让某个逻辑运行。 然而,Quartz 中的 JobListener/TriggerListener 只监听选举出的节点。有没有办法让逻辑在所有节点上运行?

java spring-boot cluster-computing quartz-scheduler quartz
1个回答
0
投票

使用此处描述的石英是不可能的。但你可以使用 spring @Scheduled

在任何配置 bean 中定义注释,如下所示 @EnableScheduling

@Configuration
@EnableScheduling
public class SpringConfig {
    ...
}

并选择要在 cron 中运行的任何函数,并定义如下

@Scheduled(cron = "0 15 10 15 * ?")
public void scheduleTaskUsingCronExpression() { 
    long now = System.currentTimeMillis() / 1000;
    System.out.println(
      "schedule tasks using cron jobs - " + now);
}

或固定延迟

@Scheduled(fixedDelay = 1000)
public void scheduleFixedDelayTask() {
    System.out.println(
      "Fixed delay task - " + System.currentTimeMillis() / 1000);
}

参考:https://spring.io/guides/gs/scheduling-tasks/

© www.soinside.com 2019 - 2024. All rights reserved.