生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

在上文 生信分析雲平臺產品開發 - 5 生信分析pipeline伺服器端執行 解決了設計好的流程在分析伺服器上執行的問題,隨之而來就衍生出的新需求:

一、批次分析流程的執行順序

流程輸入檔案是按照樣本編號來匹配執行的,執行順序就取決於樣本資訊

樣本優先順序:此處設計樣本錄入時候,輸入優先順序欄位範圍1-9,數字越大優先順序越高

樣本順序:樣本預設按照錄入的時間先後排序,相同優先順序的樣本資料,按照錄入先後順序排序執行

二、分析流程的過程控制

強制停止:開始分析流程之後,可以在任意時間停止分析過程

錯誤恢復執行:分析流程執行錯誤,再次執行,可以選擇從錯誤處恢復執行

除錯恢復執行:分析結束,修改pipeline引數後,可以選擇從任意一點開始重新分析(應用修改後的引數)

覆蓋執行:分析錯誤或者正常結束後,重新從頭開始執行整個分析流程,並覆蓋之前的分析結果

技術實現:

一、批次樣本分析流程的執行順序:

依賴於樣本的優先順序和輸入的順序先後,每次從資料庫取出未完成分析的樣本列表,按照優先順序從高到低,樣本輸入先後順序排序。

每次列表中取最上面一個,去指定目錄裡匹配輸入檔案,如果輸入檔案符合匹配要求,立即啟動pipeline,開始流程分析。同時更新該樣本狀態為正在分析,這樣下次排序時候就不會重複獲取該樣本了。

其實就是一個帶有優先順序引數的先進先出的堆疊

二、分析流程的控制

前文描述瞭如何將設計好的pipeline運行於伺服器,如果要監控整個執行過程,就需要建立一個守護執行緒,如果使用者操作停止分析,這時候守護程序就要終止執行程序,然後報錯並返回。

同時,這個守護執行緒,要負有和前端通訊,統計每個分析任務的執行時間,檢查分析任務輸出是否符合要求等等。

實現效果圖:

樣本優先順序

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

強制停止

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

錯誤恢復執行

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

除錯恢復執行

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

覆蓋執行

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制

生信分析雲平臺產品開發 - 6 生信分析流程批次執行與過程控制