任務排程quartz(二)一個簡單的排程平臺的實現
阿新 • • 發佈:2019-01-28
奮戰了幾個大概三個星期,終於實現了一個簡單的排程平臺。不過完全憑自己的個人能力是不可能完成的,筆者是參照公司的專案,學習其中的思想和技術。然後,再融入自己的一點想法,加以改造,就實現了一個比較簡單的排程平臺,同時也非常佩服這些有想法的技術牛人。
首先,來看看一點小成果,截圖如下:
這是通過javamail傳送的郵件,用自己的qq郵箱通過qq smtp伺服器傳送到筆者的163郵箱。
這就是排程平臺的任務執行記錄頁面。
這是一個excel表格,記錄兄弟朋友的生日。
接下來,筆者稍作整體。
整個平臺分為資料處理和任務排程兩個部分,資料處理用來完成自己想要乾的事,比如上面就是每天檢視有誰過生日,然後便傳送郵件提醒,其實就是一個可執行的jar。任務排程的目的是用來排程執行這個資料處理,並監控其執行狀況,因為有些資料處理可能定期需要執行,你不可能每天手動使用java -jar來執行這個應用程式吧,所以使用排程的方式,就可以方便的管理這個資料處理的執行。
由於此排程平臺涉及的點還是挺多的,不可能一一談到,這裡筆者關鍵談這種的思想,因為技術是死的,思想是活的。有些棘手的問題,只要我們有了一個好的思想,那麼問題就變得很清晰明瞭。
筆者使用了兩個專案,一個專案是個普通的java專案,用來編寫資料處理;另一個是web專案,用來排程這些資料處理。當然這兩個專案會有互動,排程平臺會發送請求呼叫執行這個jar,然後這個jar在執行的開始和結束的時候也會回撥這個排程平臺來告訴排程平臺此資料處理的執行狀態。
這裡筆者會約定,把所有的資料處理放在applications目錄下。
然後,通過新增來配置這個任務,如下圖:
這個排程平臺主要使用的技術是quartz,然通過程式碼執行java -jar來排程資料處理。
就講到這兒了,其實,沒有那麼複雜,關鍵學的是一種處理思想,為什麼要這樣做,這樣做有什麼好處?有啥不清楚的歡迎留言!