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

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