activiti流程引擎

流程引擎的創建方法:

1  ProcessEngineConfiguration的buildProcessEngine方法:

  ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("build_engine.xml").buildProcessEngine()。

      2 、ProcessEngines工具類

 ProcessEngines是一個創建流程引擎和關閉流程引擎的工具類,所創建的ProcessEngine實例均會被註冊到ProcessEngines中。

ProcessEngines維護一個Map對象,key爲ProcessEngine實例的名稱,value爲其實例。

 2.1 init() 方法,該方法讀取activiti默認的配置文件,創建ProcessEngine實例緩存到Map中。(和spring整合,則讀取classpath下的activiti.context.xml)

key值爲“default”。init方法不會返回ProcessEngine實例,只是存到map中,可以使用ProcessEngines的getProcessEngines方法獲取。

2.2 ProcessEngines.getDefaultProcessEngine方法返回key爲“default”的ProcessEngine實例。該方法會判斷流程引擎是否經過初始化,若沒有,則調用init。

2.3 registerProcessEngine 向ProcessEngines註冊一個ProcessEngine實例。

注:

unregister則註銷一個ProcessEngine實例。使用ProcessEngineConfiguration的buildProcessEngine方法則會將ProcessEngine實例註冊到ProcessEngines 中,不需再調用registerProcessEngine。

unregister則只是將ProcessEngine實例從Map中移除。不會調用ProcessEngine的close方法。

2.4 retry :Activiti加載配置文件出現異常,則可以調用ProcessEngines的retry方法,重新加載配置文件。重新創建ProcessEngine實例,並加入到Map中。

該方法返回ProcessEngineInfo實例,包含exception(初始化異常信息),name(名稱),resourceUrl(配置文件的url)。

2.5 destroy方法

銷燬ProcessEngines維護的所有ProcessEngine實例。並在銷燬時調用Processengine的close方法。

注:

沒有調用init方法,去調用destroy方法,則ProcessEngine實例不會被銷燬,也不會執行ProcessEngine的destroy方法。

3、ProcessEngine對象

3.1 服務組件:

RepositoryService:提供一系列管理流程定義和流程部署的API。

RuntimeService:在流程運行時,對流程實例進行管理和控制。

TaskService:對流程任務進行管理,任務提醒,完成和分配等。

IdentityService:提供對流程角色數據進行管理的API。

ManagementService;提供對流程引擎進行管理和維護的服務。

HistoryService:對流程歷史數據進行操作,如查詢,刪除等

3.2、 close方法

ProcessEngine的close方法,會對流程引擎進行關閉操作,包括關閉工作執行器(JobExecutor)和執行數據庫表刪除drop(前提是配置了create-drop)。

3.3、 流程引擎名稱

默認ProcessEngines中Map的key爲”default“,可以由ProcessEngineConfiguration提供的setProcessEngineName("name")設置。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章