timer.scheduleAtFixedRate和timer.schedule的實驗

基礎代碼:get

Calendar  currentTime = Calendar.getInstance();    io

currentTime.setTime(new Date()); event

int  currentHour = currentTime.get(Calendar.SECOND);基礎

currentTime.set(Calendar.SECOND,  currentHour + 20);//第一(大於20秒):currentHour + 20;第二(小於20秒):currentHour - 20;第三(等於當前):currentHour
currentTime.set(Calendar.MILLISECOND,  0); 定時任務

Date NextHour = currentTime.getTime();im

解釋:項目

NextHour時間

1*60*1000:週期爲一分鐘time

-----------------------------------------------------------------------------------------------------------------------let

一、timer.scheduleAtFixedRate(task, firstTime, period)的實驗

timer.scheduleAtFixedRate(new MyHourOnlineTask(event.getServletContext()),NextHour,1*60*1000);

實驗結果:

假設條件:項目啓動ok後的時間爲2015-01-08 10:00:00!

第一:2015-01-08 10:00:20時定時任務會執行一次,以後從2015-01-08 10:00:20開始計算,每隔1分鐘執行一次。

第二:2015-01-08 10:00:00時定時任務會執行一次,以後從2015-01-08 10:00:40開始計算,每隔1分鐘執行一次。

第三:2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。

備註 timer.scheduleAtFixedRate(new MyHourOnlineTask(event.getServletContext()),0,1*60*1000);時,2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。

 

二、timer.schedule(task, firstTime, period)的實驗

實驗結果:

假設條件:項目啓動ok後的時間爲2015-01-08 10:00:00!

第一:2015-01-08 10:00:20時定時任務會執行一次,以後從2015-01-08 10:00:20開始計算,每隔1分鐘執行一次。

第二:2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。

第三:2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。

備註 timer.schedule(new MyHourOnlineTask(event.getServletContext()),0,1*60*1000);時,2015-01-08 10:00:00時定時任務會執行一次,每隔1分鐘執行一次。

相關文章
相關標籤/搜索