在一个老项目上添加一些功能,用到定时器timer,配合ServiceContextListener就可以实现启动项目时就启动定时器,但是有一个功能是让用户可以手动更改timer的周期,也就是可以手动更改在每天的几点执行定时任务,
timer.cancle();
终止之后就不会再执行新的定时任务
反射也试过了,也不行
重新加载这个Listener也试过了,在新的时间执行,老的时间也会执行,也就是老的没有被销毁
有没有做过这方面的,或者谁可以给个思路,急,时间不多啦,要交项目了,谢谢各位大佬
你用timer只应该作为触发事件的一种方式吧,应该根据触发的事件后去检查相关任务是否应该执行,如果没有任务timer还是正常定时触发,只是触发后没有对应的任务而已。
timer就是触发事件,到点之后去其他数据库里面抽数据,然后放到本地库里,之后在生成execl文件,这些都是在timer里执行的,刚开始做的时候,时间只能是死的,现在要让管理员可以修改这个时间
@我要拿8k: 你要换个方式想,timer可能设定为1秒一个周期,每个周期内只是检查这个时间点上有没有什么任务去做。
比如有个任务8个小时跑一次,timer一秒触发一次,每次检查相关信息确认距上次执行是不是有8个小时从而触发具体job的执行。
而不是这个timer以8小时的频率触发job执行。
@Daniel Cai: 噢噢噢,我明白了,多谢,看来我的思维太固执了