書名: Activiti權威指南作者名: 冀正本章字數: 510字更新時間: 2020-11-28 15:59:56
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方法進行查看。
- UNIX編程藝術
- iOS Game Programming Cookbook
- 區塊鏈架構與實現:Cosmos詳解
- Web Application Development with R Using Shiny(Second Edition)
- Hands-On JavaScript High Performance
- aelf區塊鏈應用架構指南
- Python Network Programming Cookbook(Second Edition)
- Expert Data Visualization
- Web Development with MongoDB and Node(Third Edition)
- Express Web Application Development
- C# and .NET Core Test Driven Development
- Learning Node.js for .NET Developers
- C語言程序設計與應用實驗指導書(第2版)
- MySQL數據庫應用技術及實戰
- Learning Node.js for Mobile Application Development