Azkaban原始碼分析之使用者執行篇

2021-08-20 13:58:11 字數 1724 閱讀 8381

當伺服器通過executormanagerdispatch方法將伺服器的提交資訊交給 flow 的時候.

executor 這邊通過azkaban-exec-server/executorservletdoget方法來接收到請求資訊, 通過handleajaxexecute交給flowrunnermanagersubmitflow來處理.

public

void

submitflow(int execid) throws executormanagerexception

executableflow flow = null;

flow = executorloader.fetchexecutableflow(execid);

logger.info("get flow : " + flow.getflowid());

if (flow == null)

// sets up the project files and execution directory.

// 建立 executor 目錄並關聯 version_project

setupflow(flow);

// setup flow runner

flowwatcher watcher = null;

// 獲取 flow 的相關屬性

executionoptions options = flow.getexecutionoptions();

// 如果flow 執行之前還有沒有結束的佇列前面的 flow

// 則 監控其狀態

if (options.getpipelineexecutionid() != null) else

}// 獲取 job 執行的執行緒數量

int numjobthreads = numjobthreadperflow;

if (options.getflowparameters().containskey(flow_num_job_threads))

} catch (exception e)

}flowrunner runner =

new flowrunner(flow, executorloader, projectloader, jobtypemanager);

// 初始化屬性

runner.setflowwatcher(watcher)

.setjoblogsettings(joblogchunksize, joblognumfiles)

.setvalidateproxyuser(validateproxyuser)

.setnumjobthreads(numjobthreads).addlistener(this);

configureflowlevelmetrics(runner);

// check again.

if (runningflows.containskey(execid))

// finally, queue the sucker.

runningflows.put(execid, runner);

try catch (rejectedexecutionexception re)

}

Azkaban原始碼解析之使用者登入篇

使用者登入過程 當使用者首次進入 azkaban 的時候,需要首先登入系統,登入通過loginabstractazkabanservlet類來接入實現功能 loginabstractazkabanservlet中有乙個handleajaxloginaction用來處理使用者登入事件 createse...

spring原始碼分析 spring原始碼分析

1.spring 執行原理 spring 啟動時讀取應用程式提供的 bean 配置資訊,並在 spring 容器中生成乙份相應的 bean 配置登錄檔,然後根據這張登錄檔例項化 bean,裝配好 bean 之間的依賴關係,為上 層應用提供準備就緒的執行環境。二 spring 原始碼分析 1.1spr...

使用者登入原始碼

一 實現功能 1.是否允許同一使用者登入 2.同一使用者登入強制下線 二 功能說明 1.使用者在登入到系統前判斷當前使用者名稱是否登入 是否允許同一使用者名稱登入 同一使用者名稱登入是否踢出相同使用者 2.系統利用session儲存當前使用者名稱和登入時間完成以上功能 3.系統沒有使用任何資料和xm...