首页 新闻 搜索 专区 学院

java timer修改周期

0
悬赏园豆:50 [已解决问题] 解决于 2016-07-05 09:33

  在一个老项目上添加一些功能,用到定时器timer,配合ServiceContextListener就可以实现启动项目时就启动定时器,但是有一个功能是让用户可以手动更改timer的周期,也就是可以手动更改在每天的几点执行定时任务,

timer.cancle();

终止之后就不会再执行新的定时任务

反射也试过了,也不行

重新加载这个Listener也试过了,在新的时间执行,老的时间也会执行,也就是老的没有被销毁

 

有没有做过这方面的,或者谁可以给个思路,急,时间不多啦,要交项目了,谢谢各位大佬

我要拿8k的主页 我要拿8k | 初学一级 | 园豆:109
提问于:2016-06-27 17:14
< >
分享
最佳答案
0

你用timer只应该作为触发事件的一种方式吧,应该根据触发的事件后去检查相关任务是否应该执行,如果没有任务timer还是正常定时触发,只是触发后没有对应的任务而已。

收获园豆:50
Daniel Cai | 专家六级 |园豆:10374 | 2016-06-28 16:23

timer就是触发事件,到点之后去其他数据库里面抽数据,然后放到本地库里,之后在生成execl文件,这些都是在timer里执行的,刚开始做的时候,时间只能是死的,现在要让管理员可以修改这个时间

我要拿8k | 园豆:109 (初学一级) | 2016-06-29 21:08

@我要拿8k: 你要换个方式想,timer可能设定为1秒一个周期,每个周期内只是检查这个时间点上有没有什么任务去做。

比如有个任务8个小时跑一次,timer一秒触发一次,每次检查相关信息确认距上次执行是不是有8个小时从而触发具体job的执行。

而不是这个timer以8小时的频率触发job执行。

Daniel Cai | 园豆:10374 (专家六级) | 2016-06-30 13:26

@Daniel Cai: 噢噢噢,我明白了,多谢,看来我的思维太固执了

我要拿8k | 园豆:109 (初学一级) | 2016-07-05 09:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册