flink學習(加餐)——job任務狀態變化
我們來看一下flink官網的圖:
光看圖就頭暈了,我們可以來整理一下。
首先flink job任務狀態總共有:
- Created
- Running
- Finished
- Failed
- Canceled
- Failing
- Canceling
- Restarting
- Suspended
根據個人理解,我們可以把這些狀態分為四大類:
- 起始態
- 中間態
- 最終態
- 過渡態
起始態表示任務啟動時的狀態,中間態表示任務執行時的狀態,最終態表示任務最後的狀態,過渡態表示任務在上述這些狀態轉化時中間過渡的狀態。
這樣我們就把九個狀態歸類到四個狀態裡面去了:
狀態分類 | 狀態 |
---|---|
起始態 | Created |
中間態 | Running |
最終態 | Finished、Failed、Canceled |
過渡態 | Failing、Canceling、Restarting、Suspended |
再為了方便理解,我們先省略掉過渡態考慮任務執行變化情況。一個job如果正常執行,那麼它的狀態變化就是:
Created -> Running -> Finished
如果失敗,則是:
Created -> Failed
或
Created -> Running -> Failed
如果被取消了,則是:
Created -> Canceled
或
Created -> Running -> Canceled
總共狀態變化就這麼四種。
這時,我們再來考慮過渡態。因為Running -> Finished
是沒有中間態的,所以不用考慮過渡態。而對於Failed
和Canceled
來說,都有各自的過渡態Failing
和Canceling
。只需要在上述的變化鏈路中加上過渡態即可。
所以我們可以把狀態變化修改成:
失敗
Created -> Failing -> Failed
或
Created -> Running -> Failing -> Failed
取消
Created -> Canceling -> Canceled
或
Created -> Running -> Canceling -> Canceled
並且對於失敗任務來說,還有可能進行重啟,所以失敗的狀態變化還可以是:
Created -> Failing -> Restarting -> Created
或
Created -> Running -> Failing -> Restarting -> Created
最後,我們來看Suspended
。這個狀態很簡單,只要不是最終態,都可以轉換為Suspended
。
這樣我們基本把一個任務的狀態變化就給理清了,總共完整的狀態鏈路變化就五條:
成功
Created -> Running -> Finished
失敗
Created -> Failing -> Failed
Created -> Running -> Failing -> Failed
取消
Created -> Canceling -> Canceled
Created -> Running -> Canceling -> Canceled
另加兩條失敗重啟的迴圈鏈路:
失敗重啟
Created -> Failing -> Restarting -> Created
Created -> Running -> Failing -> Restarting -> Created
相關文章
- Serverless JOB | 傳統任務新變革Server
- Serverless JOB——傳統任務新變革Server
- Elastic-Job:動態新增任務,支援動態分片AST
- 狀態變化模式模式
- Flink狀態妙用
- Flink狀態(一)
- flink狀態容錯
- 事務狀態持久化持久化
- Oracle 任務管理之 ----program(程式)---scheduler(計劃)--Job(任務)Oracle
- job任務均不執行,手工執行報job now running
- 基於websocket的celery任務狀態監控Web
- Flink Slot詳解與Job Execution Graph優化優化
- 對xxl-job進行simpleTrigger並動態建立任務擴充套件套件
- ORACLE job作業BROKEN狀態無法改變與ORA-12005&ORA-06550Oracle
- IDEA上執行Flink任務Idea
- 從任務中心看狀態機功能元件設計元件
- 學習 PixiJS — 精靈狀態JS
- 【Flink入門修煉】2-2 Flink State 狀態
- 深入理解Flink中的狀態
- flink 有狀態(stateful)的計算
- Locust 任務巢狀巢狀
- Oracle 定時任務job實際應用Oracle
- Oracle診斷案例-Job任務停止執行Oracle
- xxl-job,任務排程中心快速上手
- spark核心(下)——job任務提交原始碼解析Spark原始碼
- Quartz job scheduler 學習quartz
- LangGraph 狀態機:複雜 Agent 任務流程管理實戰
- Flutter狀態管理--Getx學習2Flutter
- React學習筆記-State(狀態)React筆記
- 第09講:Flink 狀態與容錯
- 解密函式計算非同步任務能力之「任務的狀態及生命週期管理」解密函式非同步
- PostgreSQL狀態變遷SQL
- Flink on Yarn三部曲之三:提交Flink任務Yarn
- micro-job分散式任務排程框架更新分散式框架
- 分散式任務排程平臺XXL-JOB分散式
- Kubernetes:28---pod託管(Job:任務型pod)
- freertos基礎學習--任務通知
- Flink - Task 任務排程執行流程