一个定时器做两个任务
一个是处理事情的用的
一个是读取文件的用的,隔30秒读取一次,如果文件里的时间和上面那个任务指定的时间不同,
那么上面那个任务执行的的指定时间是这个文件里读出来的时间,
就是不知道怎么关闭上面那个调度的任务,然后再开启任务,重新给它指定新的调度的时间!
求解 谢谢各位啦
------解决方案--------------------------------------------------------
定时器关闭好像不行吧,只能判断下,不让它执行任何代码就行了
------解决方案--------------------------------------------------------
那你应该用两个timer,一个是专门监测文件状态的,一个是处理事务
for example
- Java code
import java.util.*;import java.io.*;class Test { public static void main(String[] args) { Timer timer1 = new Timer(); //监测文件用 final Timer timer2 = new Timer(); //处理事情用 timer1.scheduleAtFixedRate(new TimerTask() { long delay = 0; public void run() { try { RandomAccessFile raf = new RandomAccessFile("controlfile", "rw"); String buf = raf.readLine(); raf.close(); long l = Long.valueOf(buf).longValue(); if (delay != l) { //文件时间改变了 delay = l; //取得间隔时间 timer2.cancel(); //停止处理事情的timer timer2.scheduleAtFixedRate(new TimerTask() { //重新开启处理事情的timer public void run() { //处理事情 } }, 0, delay); } } catch (Exception e) {e.printStackTrace();} } }, 0, 30*1000); }}
------解决方案--------------------------------------------------------