官术网_书友最值得收藏!

2.7 管理流程引擎

2.7.1 注冊流程引擎

上文多次提到流程引擎對象構造完畢,會將自身信息注冊到流程引擎管理類中,以方便后續操作,這一過程從ProcessEngines.registerProcessEngine(this)開始,該方法的詳細實現如代碼清單2-28所示。

代碼清單2-28 ProcessEngines.java

畢竟registerProcessEngine方法僅僅是注冊流程引擎實例對象,所以實現邏輯比較簡單,直接將ProcessEngine實例對象添加到ProcessEngines類中的processEngines集合即可。

2.7.2 關閉流程引擎

上文分析了流程引擎的注冊過程,接下來詳細分析流程引擎的注銷過程,流程引擎關閉時會調用注銷方法,上文提到過流程引擎的關閉操作形如processEngine.close(), close方法負責關閉流程引擎,該方法的詳細實現如代碼清單2-29所示。

代碼清單2-29 ProcessEngineImpl.java

下面對close方法的執行邏輯加以總結。

(1)第2行注銷流程引擎實例。

(2)關閉執行器。

第3~7行如果流程引擎配置類配置了作業執行器jobExecutorActivate開關屬性和異步作業執行器asyncExecutorActivate開關屬性,則需要分別關閉上述的兩個作業執行器。

(3)執行SchemaOperationProcessEngineClose命令。

(4)流程引擎生命周期監聽器。

如果流程引擎配置類配置了流程引擎生命周期監聽器,則第11行觸發流程引擎生命周期監聽器中的onProcessEngineClosed方法。

(5)轉發事件。第13~14行轉發ENGINE_CLOSED事件。

如果使用StandaloneProcessEngineConfiguration實例對象,則需要手動調用流程引擎的close方法,如果使用ProcessEngineFactoryBean類構造流程引擎,則無須關心close方法,具體實現邏輯可以跟進該類的destroy方法進行查看。

主站蜘蛛池模板: 逊克县| 兰考县| 灌云县| 荔浦县| 广德县| 汉阴县| 交口县| 绵阳市| 南溪县| 武清区| 东光县| 曲麻莱县| 沛县| 闵行区| 慈溪市| 股票| 若羌县| 乳山市| 城固县| 宜州市| 玉林市| 南江县| 闽侯县| 延寿县| 荔波县| 汝城县| 北辰区| 高台县| 茶陵县| 拜城县| 武陟县| 南木林县| 拉孜县| 山西省| 惠安县| 北流市| 蒲江县| 吉木乃县| 绍兴县| 武城县| 冕宁县|