timer定时任务

@Override
public void timingPushMessage(final Message message) {
final Timer timer = new Timer();
TimerTask task = new TimerTask() {
            @Override
            public void run() {
            messageService.pushMessage(message);
                System.out.println("时间=" + new Date() + " 执行了" + "1" + "次"); // 1次
//                System.out.println(message.getTitle());
                //timer.cancel();
            }
        };
        timer.schedule(task, message.getPushTime());

}


当时间还没到的时候,run方法并不执行,一直到约定时间之后才会执行,但是需要调用这个方法。



  public static void showTimer() {
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                ++count;
                System.out.println("时间=" + new Date() + " 执行了" + count + "次"); // 1次
            }
        };


        //设置执行时间
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);//每天
        //定制每天的21:09:00执行,
        calendar.set(year, month, day, 11, 33, 00);
        Date date = calendar.getTime();
        Timer timer = new Timer();
        System.out.println(date);
        
        int period = 2 * 1000;
        //每天的date时刻执行task,每隔2秒重复执行
        //timer.schedule(task, date, period);
        //每天的date时刻执行task, 仅执行一次
        timer.schedule(task, date);
    }
    
    public static void main(String[] args) {
        showTimer();
    }

你可能感兴趣的:(timer定时任务)