关于数据完整性,Timer控件
我写的程序是这样,定时从数据库中读取数据,然后再以短信方式发送出去.
程序如下:
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);//
启动timer控件,2秒一次.
static class MyTask extends java.util.TimerTask{
public void run(){
DB db1 =new DB();
String strSql= "select * from attendance where send=1 ";
ResultSet rs1=db1.executeQuery(strSql);
while(rs1.next()){
.......;//数据处理
update set send=2 where (当前处理的这一条数据)
}
}
}
请问一下,两秒过后这些数据还没有处理完成,请问会不会再启动一个MyTask ;
会不会造成对同一次据进行两次操作;
------解决方案--------------------不会的。Timer 会尽力在要求的时间间隔内完成。完不成它也不会重复执行。
但是,如果使用timer.scheduleAtFixedRate的话,就不一样了。。。。