作業程式有兩種型別:
- Long-lived 作業程式:輸入或輸出是無限量的資料,常見近乎實時的業務資料處理,比如日誌處理等。(一般將訊息佇列連線輸入,用來做流量削峰或多個輸入)
- Short-lived 作業程式:處理一組有限的資料然後終止。執行程式碼並在資料庫中記錄執行狀態的任務,然後結束。
常見的做法是,基於 Spring Cloud Stream 框架編寫 Long-lived 作業程式,基於 Spring Cloud Task 或 Spring Batch 框架編寫 Short-lived 作業程式;
Spring Cloud Data Flow 可以用來排程作業程式:
作業系統一般分為 排程
、執行
和 編排
;
排程
就指示了作業誰來執行、什麼時候執行、怎麼執行等,由此可以延伸出定期排程、手動排程、路由策略、過期策略、阻塞策略、失敗重試等等,這些都是排程
需要處理的事情。編排
處理作業之間的依賴關係,子作業等。執行
具體的作業邏輯。
參考資料:
- Spring Cloud Data Flow
- Spring Batch Architecture
- XXL-JOB