QUARTZ 问题总结

  1. quartz 定时任务不执行
原因1: 
      查看你整合quartz的方式,我这里用的是实现**QuartzJobBean**方式实现
     然后使用@PostConstruct 方式,在项目启动时候进行初始化
原因2: 实现QuartzJobBean后,仍然不执行,查看detail和trigger表,查看是否配置的有信息,
     执行原理是根据schedule_job  和detail和trigger表,结合起来,才会执行定时任务。
     如果detail和trigger表 其中一个表缺失数据,把有数据的那个表进行数据删除(每次项目重启会重新生成,代码里有实现这部分功能)

原因3: 定时任务执行一段时间后,突然不执行
1.排查执行任务是否暂停

SELECT trigger_name, trigger_group, trigger_state
	FROM qrtz_triggers WHERE trigger_state = 'PAUSED';

调用下面方法开启定时任务:

final Scheduler scheduler;

@GetMapping("/resumeAllJobs")
public String resumeAllJobs() {
   try {
       scheduler.resumeAll();
       return "All jobs resumed successfully";
   } catch (SchedulerException e) {
       return "Error resuming all jobs: " + e.getMessage();
   }
}
  1. 以上都不行的话,查看数据连接数是否超过数据库的最大数,超了的话,调整数据库连接最大数
SELECT COUNT(*) AS total_connections
FROM pg_stat_activity;

你可能感兴趣的:(java,数据库)