- 原因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();
- }
- }
复制代码
- 以上都不可的话,查看数据连接数是否凌驾数据库的最大数,超了的话,调整数据库连接最大数
- SELECT COUNT(*) AS total_connections
- FROM pg_stat_activity;
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |