亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

springboot Scheduled相關問題~

springboot Scheduled相關問題~

慕萊塢森 2018-08-02 18:33:50
現在有個定時任務在項目里面,是每天凌晨執行一次,但是有一天數據量特別大,任務跑了一天還沒跑完,一直執行到了第二天,然后這個任務又開始執行了。所以造成了數據的重復相關代碼    /***      * 每天凌晨一點sqlserver數據庫抓取數據      * @throws Exception 系統異常      */     @Scheduled(cron = "0 0 1 * * ?")    public void switchDate(){}這么寫的,現在我想讓任務執行的時候看上一次同一任務執行完沒,如果沒有執行完就推遲任務執行時間。我查過資料就是類似 Quartz 的 concurrent 屬性,是這么說的:其中 concurrent 屬性標識的解釋為:對于相同的 JobDetail ,當指定多個 Trigger 時, 很可能第一個job 完成之前,第二個 job 就開始了。指定 concurrent 設為 false,多個 job 不會并發運行,第二個job 將不會在第一個 job 完成之前開始。那么此處的第二個 job 到底是被推遲執行了,還是被取消了呢? 今天帶著這個疑問做了一個小實驗,具體做法如下:將任務的 Trigger 設置為每 10 秒鐘執行一次,然后在執行的任務體內讓 Thread 暫停 15 秒鐘,這樣不同的 job 之間肯定會有時間上的重疊。當啟動程序之后,發現前一個 job 執行結束的時刻的秒數為15,而且第二個本來在 10s 就執行的 job 馬上就啟動了。由此可見,concurrent屬性實際是將job推遲執行了。各位有誰知道嗎?小弟表述不清的地方...對不住了( ?? ω ?? )y
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 782 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號