定時任務排程工具之Timer

2021-09-10 05:03:42 字數 3324 閱讀 2483

序言:本文主要對timer類的介紹以及api的使用詳情

基於給定的時間點、給定的時間間隔或者給定的執行次數自動執行任務。

timer 由jdk自帶提供!

有且僅有乙個後台執行緒對多個業務執行緒進行定時定頻率的排程

首先,建立乙個mytimertask類,繼承timertask

public

class

mytimertask

extends

timertask

@override

public

void

run(

)public string getname()

public

void

setname

(string name)

}

1.schedule(task, time) : 在時間等於或者超過time的時候執行,且執行一次task。

// 建立乙個timer例項

timer timer =

newtimer()

;// 建立乙個timertask例項

mytimertask task =

newmytimertask

("s1");

/** * 在時間等於或者超過time的時候執行,且執行一次task

*/calendar calendar = calendar.

getinstance()

;// 在當前時間的5秒後執行該任務

calendar.

add(calendar.second,5)

;timer.

schedule

(task, calendar.

gettime()

);

2.schedule(task, time, period) : 在時間等於或者超過time的時候首次執行task,之後每隔period毫秒重複執行task

// 建立乙個timer例項

timer timer =

newtimer()

;// 建立乙個timertask例項

mytimertask task =

newmytimertask

("s2");

calendar calendar = calendar.

getinstance()

;/**

* 在時間等於或者超過time的時候首次執行task,之後每隔period毫秒重複執行task

*/timer.

schedule

(task, calendar.

gettime()

,3000

);

3.schedule(task, delay) : 等待delay毫秒後執行且執行一次task

// 建立乙個timer例項

timer timer =

newtimer()

;// 建立乙個timertask例項

mytimertask task =

newmytimertask

("s3");

/** * 等待delay毫秒後執行且執行一次task

*/timer.

schedule

(task,

3000

);

4.schedule(task, delay, period) : 等待等於或者超過delay毫秒後首次執行task 之後每隔period毫秒重複執行task

// 建立乙個timer例項

timer timer =

newtimer()

;// 建立乙個timertask例項

mytimertask task =

newmytimertask

("小公尺");

/** * 等待delay毫秒後首次執行task 之後每隔period毫秒重複執行task

*/timer.

schedule

(task,

3000

,2000

);

1.scheduleatfixedrate(timertask task, date firsttime, long period) : 時間等於或者超過time的時候首次執行task,之後每隔period毫秒重複執行task

// 建立乙個timer例項

timer timer =

newtimer()

;// 建立乙個timertask例項

mytimertask task =

newmytimertask

("scheduleatfixedrate1");

calendar calendar = calendar.

getinstance()

;/**

* 時間等於或者超過time的時候首次執行task,之後每隔period毫秒重複執行task

*/timer.

scheduleatfixedrate

(task, calendar.

gettime()

,2000

);

2.scheduleatfixedrate(timertask task, long delay, long period):等待等於或者超過delay毫秒後首次執行task 之後每隔period毫秒重複執行task

// 建立乙個timer例項

timer timer =

newtimer()

;// 建立乙個timertask例項

mytimertask task =

newmytimertask

("scheduleatfixedrate2");

/** * 等待等於或者超過delay毫秒後首次執行task 之後每隔period毫秒重複執行task

*/timer.

scheduleatfixedrate

(task,

3000

,2000

);

當任務丟擲異常時的缺陷

不推薦使用的場景

timer定時任務

override public void timingpushmessage final message message timer.schedule task,message.getpushtime 當時間還沒到的時候,run方法並不執行,一直到約定時間之後才會執行,但是需要呼叫這個方法。publ...

Timer 定時任務

一 指定時間執行 public class testmain public static void main string args catch exception e 二 按指定的間隔周期性地無限迴圈地執行某乙個任務 public class testmain public static void...

Python 定時任務Timer

ftp檔案傳輸 1 每隔一段時間執行某個功能 timer類建構函式 timer interval,function,args kwargs interval 指定的間隔時間 單位 秒 function 要執行的方法 args kwargs 方法的引數 from threading import ti...