Timer異常後導致任務終止的解決方案

來源:互聯網
上載者:User

給客戶做的系統裡有幾個Timer在定時執行

但是客戶反應 某些資料沒成功,於是看日誌發現是由於Timer報錯了,任務就終止了。

然後需要改成在Timer報錯的時候還要繼續執行任務,於是 catch 裡面加代碼,但是不是很好。

在網上找到一個

java.util.concurrent.ScheduledExecutorService;

於是看介紹修改原Timer的代碼為

public static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);/** * 1分鐘執行一次 */public static void runTimer() {executorService.scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {try {.....} catch (Exception e) {e.printStackTrace();}}}, 0, 60, TimeUnit.SECONDS);}

這樣就達到了我想要的結果

 

注意:必須加上try catch捕獲異常後 才能在異常後繼續執行下一次任務,不然任務會掛起什麼都不做。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.