課程
/后端開發(fā)
/Java
/Java定時任務(wù)調(diào)度工具詳解之Quartz篇
誰能告訴我這里為啥打印這么多次
2018-03-25
源自:Java定時任務(wù)調(diào)度工具詳解之Quartz篇 2-8
正在回答
43秒啟動的scheduler,每秒執(zhí)行一次;2秒后scheduler被關(guān)閉,也就是說任務(wù)被觸發(fā)的時間為:43秒,44秒,45秒,那么由于單個job中存在一個sleep(5s)的線程,那么job中打印時間應(yīng)該為:48秒,49秒,50秒,觀察結(jié)果卻是:49秒,49秒,50秒,說明在43秒觸發(fā)的任務(wù),假設(shè)是43.999秒觸發(fā)的,理論上應(yīng)該在48.999秒打印job中的時間,但是由于每行程序執(zhí)行都需要時間,假設(shè)為1ms,就導(dǎo)致第一次觸發(fā)的任務(wù)在打印時間的時候已經(jīng)到了49秒。自己在執(zhí)行程序的時候把毫秒單位也打出來就容易理解了。同時可能quartz自己的執(zhí)行機制,會把時間相近,比如相差五毫秒以內(nèi)(推測)的兩條任務(wù)同時執(zhí)行,也就是說在同一毫秒精度執(zhí)行。
因為線程睡眠了2秒,它會把睡眠的的這2秒需要執(zhí)行的代碼都補上
設(shè)置的是每秒打印一次,但是為啥會重複一次49秒就不知道了
舉報
Java定時任務(wù)調(diào)度工具詳解之Quartz篇
2 回答為什么執(zhí)行結(jié)果只有成員屬性的,jobDataMap的值打印不出來
2 回答四秒鐘開始執(zhí)行第一次,六秒后停止執(zhí)行,運行間隔兩秒。老師的demo可以運行兩次,為什么我的demo只能執(zhí)行一次?(是因為我的quartz是2.3.0的原因嗎?)
2 回答把打印當(dāng)前時間的這幾句移到開頭的位置就不會在控制臺輸出出了
1 回答有誰試過沒有??
1 回答測試maven程序,執(zhí)行App.java有異常打印,是否影響項目?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2021-08-05
43秒啟動的scheduler,每秒執(zhí)行一次;

2秒后scheduler被關(guān)閉,也就是說任務(wù)被觸發(fā)的時間為:
43秒,
44秒,
45秒,
那么由于單個job中存在一個sleep(5s)的線程,那么job中打印時間應(yīng)該為:
48秒,
49秒,
50秒,
觀察結(jié)果卻是:
49秒,
49秒,
50秒,
說明在43秒觸發(fā)的任務(wù),假設(shè)是43.999秒觸發(fā)的,理論上應(yīng)該在48.999秒打印job中的時間,但是由于每行程序執(zhí)行都需要時間,假設(shè)為1ms,就導(dǎo)致第一次觸發(fā)的任務(wù)在打印時間的時候已經(jīng)到了49秒。
自己在執(zhí)行程序的時候把毫秒單位也打出來就容易理解了。
同時可能quartz自己的執(zhí)行機制,會把時間相近,比如相差五毫秒以內(nèi)(推測)的兩條任務(wù)同時執(zhí)行,也就是說在同一毫秒精度執(zhí)行。
2019-01-28
因為線程睡眠了2秒,它會把睡眠的的這2秒需要執(zhí)行的代碼都補上
2018-03-26
設(shè)置的是每秒打印一次,但是為啥會重複一次49秒就不知道了