2014-04-15 37 views
0

我已經使用JDBCJobStore配置了簡單觸發器計劃程序。一切正常,直到服務器正在運行,但如果服務器發生故障並稍後重新啓動,那麼在重新啓動服務器後,會在服務器停機期間錯過觸發的作業不會被觸發。但重新啓動後的計劃作業也正常工作。服務器關閉期間的計劃作業在服務器啓動期間不運行

例如:如果有3個作業安排如下:

Job 1 - 15-April-2014 9 AM 
Job 2 - 15-April-2014 9:30 AM 
Job 3 - 15-April-2014 10 AM 

針對上述案例,作業1執行不如預期,現在服務器已經從上午9:15停止9:45 AM,這裏工作2被錯過執行。稍後在9:45重新啓動服務器後,Job 2不會被觸發。但在上午10點,作業3被觸發並按預期執行。

我不知道我錯過了什麼。在調度作業期間是否需要添加任何特定的屬性或Java代碼?所以石英可以觸發工作2,請有人幫我找到解決方案。提前致謝。

+0

使用失火的政策來執行這個每次我已經解決了上述問題 - MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT。但我的新問題是,我無法觸發服務器關閉/崩潰期間正在進行的作業。我在網上衝浪,發現'RequestsRecovery',雖然我將它設置爲true,但在服務器上重新開始工作沒有恢復。有人能幫我解決這個問題嗎? – TK2020

回答

0

一旦服務器關閉所有計劃任務就會關閉。 在服務器的時候開始,你需要重新提交所有作業RAM

SchedulerUtility schedUtil=new SchedulerUtility(); 
     try { 

      Scheduler sched = schedUtil.getScheduler(); 
      sched.start(); 

     } catch (IOException e) { 
      log.error(e); 
      //e1.printStackTrace(); 
     } catch (SchedulerException e) { 
      log.error(e); 
      //e1.printStackTrace(); 
     } 

確保u需要在服務器啓動/重新啓動

相關問題