使用監(jiān)聽器執(zhí)行定時任務(wù)

freeshare有個功能:應(yīng)用機(jī)器人定時向企業(yè)發(fā)送用戶活躍度的帖子,這里需要通過struts2<listener> 設(shè)定監(jiān)聽,并通過Listener類設(shè)置定時任務(wù),我本來想設(shè)定每周日晚上某個時間執(zhí)行任務(wù),不依賴于我部署的時間,因為一部署就會開始啟動listener:

//Get the Date corresponding to 11:01:00 pm today.

Calendar?calendar?=?Calendar.getInstance(); //這里會獲取當(dāng)前時間周年月日時分秒

calendar.set(Calendar.HOUR_OF_DAY,23);

calendar.set(Calendar.MINUTE,25);

calendar.set(Calendar.SECOND,0);

Date?time?=?calendar.getTime();

timer?=newTimer();

timer.schedule(newRemindTask(),?time);

timer.schedule(task, time);// time為Date類型:在指定時間執(zhí)行一次(并不會定期執(zhí)行,執(zhí)行完一次就結(jié)束)

這個方法的源碼中有句英文:

Schedules the specified task for execution at the specified time.? If?the time is in the past, the task is scheduled for immediate execution.

我寫的時候是周一,我設(shè)置的calendar是周日,但是他會自動認(rèn)為是上周日(也就是昨天),所以我一運(yùn)行工程他就會執(zhí)行一遍,但是我設(shè)置周二就不會execute immediately。

注意,我的要求是每周定時執(zhí)行,所以其實這樣設(shè)時間是不行的,只能通過:

timer.schedule(task, delay, period)// delay為long,period為long:從現(xiàn)在起過delay毫秒以后,每隔period毫秒執(zhí)行一次。

這種方式定時執(zhí)行,這樣會依賴于我部署的時間,不知道還有沒有其他解決方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Timer 定時器相信都不會陌生,之所以拿它來做源碼分析,是發(fā)現(xiàn)整個控制流程可以體現(xiàn)很多有意思的東西。 在業(yè)務(wù)開發(fā)...
    石先閱讀 6,506評論 2 13
  • 念一段故事 ▼ 你談過幾段戀愛,在大學(xué)的時候 來自念一段故事 00:0009:10 ?主播:芝子 / 文:芝子? ...
    寫不盡的木木閱讀 323評論 0 0
  • 【注:好多圖都是網(wǎng)上找的,都沒去水印,因為昨天太激動了,而且有點(diǎn)遠(yuǎn)自己拍的質(zhì)量都不太好,只好借用一下大家的美圖啦!...
    Amy沈閱讀 428評論 0 1
  • 邀一輪明月,攜一縷清風(fēng),品一盞香茗,手捧一卷書,任思緒暢游其中。千年的兼葭散發(fā)著晚香,細(xì)品純樸的民風(fēng);...
    聶鴻芝閱讀 285評論 1 0
  • 1.把所有的失利當(dāng)成流沙,把已有的成功當(dāng)作浮云。無論是痛苦傷心,還是快樂歡欣;都不要迷失了最初,為夢執(zhí)著的自我。 ...
    肖先生肖軍閱讀 319評論 0 0

友情鏈接更多精彩內(nèi)容