我已经使用 Quartz 和集群环境构建了一个项目。 当一个未选举的节点到达CronTrigger时,我想让某个逻辑运行。 然而,Quartz 中的 JobListener/TriggerListener 只监听选举出的节点。有没有办法让逻辑在所有节点上运行?
使用此处描述的石英是不可能的。但你可以使用 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);
}