Java定时任务

最近再写一个水质监测项目,在串口读取数据后,需要存数据到数据库,串口监听类,每秒都会接收到数据.

在统计时,并不需要这么多数据.于是,需要Java定时任务来实现,每隔多久传输一次数据.

1.使用Thread.sleep()实现间隔效果

import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Created by 94829 on 2018-06-10.
 */
public class Timers {
    public static void main(String[] args) {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Boolean result = false;
        int count = 0;
        while(!result) {
            try {
                Thread.sleep(5 * 1000); //设置暂停的时间 5 秒
                count ++ ;
                System.out.println(sdf.format(new Date()) + "--循环执行第" + count + "次");
                if (count == 3) {
                    result = true;
                    break ;
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

2.Java定时器,使用java定时器需要继承java TimerTask(java.util包下)类,并重写run方法;

package time;

import java.util.TimerTask;

/**
 * Created by 94829 on 2018-06-10.
 */
public class MyTask extends TimerTask {
    private int i = 1;

    @Override
    public void run() {
        System.out.println("正在执行第:"+i+" 次!");
        i++;
    }
}

package time;
import java.util.Timer;

/**
 * Created by 94829 on 2018-06-10.
 */
public class Test {
    public static void main(String[] args) {
        Timer time = new Timer();
        time.schedule(new MyTask(), 1000, 2000);   //1s之后开始执行,每2秒执行一次,参数单位(毫秒)

        while(true){
            try {
                int in = System.in.read();   //控制台输入t时停止定时器,具体定时器开关可根据实际业务需要自己设计
                if (in == 't') {
                    time.cancel();  //关闭定时器操作
                    break;
                }
            } catch (Exception e) {
            }
        }

    }
}

参考了以下文章:

https://blog.csdn.net/sinat_28505133/article/details/79642923

https://blog.csdn.net/u013911563/article/details/50718272/

https://blog.csdn.net/baomw/article/details/78339312

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值