quartz 持久化失效问题

今天在开发一个功能的时候,需要用到定时器在某个时间段进行定时执行,项目里面原来就配置有跟定时器相关的配置了,大致如下,配置今天在开发一个功能的时候,需要用到定时器在某个时间段进行定时执行,项目里面原来就配置有跟定时器相关的配置了,大致如下,配置了一个 定时器工厂类 

triggers 是说工厂类有哪些执行计划,大概是图下这样,具体就不说什么意思,百度一下即可

然后我模仿加了一个自己的定时任务配置进来,为了测试,我把它设置为1分钟执行一次

然后我启动服务器,但是过了好几分钟都没有执行,还发现连以前的定时任务都没执行了,,,

 

因为启动服务器的时候也没有报错,所以我也只能猜测了

1, 猜测idea有bug,  重启idea 还是不行

2.   怀疑电脑长时间没关有缓存,重启电脑也不行

3.  把项目直接放到tomcat 运行也不行,

都不行以后又尝试了其他操作,后来突然看到里面有一份持久化的配置

<property name="configLocation" value="classpath:quartz.properties" />

随后把这个注释掉,再次启动服务器,定时器就正常运行了!所以就是因为这个定时器的问题导致的了,

至于是什么原因导致的,我目前也不知道,因为程序也没有报错,只是定时任务直接不能运行了,最后的解决方法是

清空里面的表格,当然,我首先是复制一份到我本地数据库来测试一下,首先,把定时任务里面配置的数据表的结构同步到我

本地的数据库,然后你需要在  qrtz_locks 插入原来就有的几条数据

INSERT INTO `QRTZ_LOCKS`(`LOCK_NAME`) VALUES ('CALENDAR_ACCESS');
INSERT INTO `QRTZ_LOCKS`(`LOCK_NAME`) VALUES ('JOB_ACCESS');
INSERT INTO `QRTZ_LOCKS`(`LOCK_NAME`) VALUES ('MISFIRE_ACCESS');
INSERT INTO `QRTZ_LOCKS`(`LOCK_NAME`) VALUES ('STATE_ACCESS');
INSERT INTO `QRTZ_LOCKS`(`LOCK_NAME`) VALUES ('TRIGGER_ACCESS');

一定要插入,否则会报错,然后其他表格的数据全部清空即可,启动时 工厂会自动生成数据,但是不会自动创建表,所以你需要同步所有的数据表过来,然后插入那上边几条数据到表中,所有表大概有

这个应该是官网有的,自行百度,然后就行了,定时任务又可以正常运行了

 

到此为止,定时任务没有执行的问题就是出现在持久化上,但是没有报错有点坑,可能都太好找,现在我也不知道具体是啥问题,只是把表格清空让他重新生成了一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值