activiti系列之ProcessEngines

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

ProcessEngine

一個ProcessEngine實例代表一個流程引擎,從ProcessEngine可以獲取各種服務組件,依據這些服務組件可以操作流程實例、任務、系統角色等數據。

ProcessEngine processEngine;
//流程存儲服務 提供一系列管理流程定義和流程部署的API
RepositoryService repositoryService = processEngine.getRepositoryService();
//任務 對流程任務進行管理 包括任務提醒 完成和創建
TaskService taskService = processEngine.getTaskService();
//運行服務組件 在流程運行時對流程實例進行管理與控制
RuntimeService runtimeService = processEngine.getRuntimeService();
//表單 
FormService formService = processEngine.getFormService();
//歷史服務組件 對流程歷史數據進行操作,包括查詢 刪除
HistoryService historyService = processEngine.getHistoryService();
//身份服務組件 提供對流程角色數據進行管理的API(用戶 用戶組 及它們之間的關係)
IdentityService identityService = processEngine.getIdentityService();
//管理服務組件  提供對流程引擎進行管理和維護服務
ManagementService managementService = processEngine.getManagementService();
//動態修改流程中的一些參數信息等,是引擎中的一個輔助的服務 ,使用該服務,可以不需要重新部署流程模型,就可以實現對流程模型的
//部分修改
DynamicBpmnService dynamicBpmnService = processEngine.getDynamicBpmnService();
設置流程引擎名稱,ProcessEngine默認設置名稱爲"default"
 ProcessEngineConfiguration pconfig = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("test.xml");
//設置流程引擎名稱
 pconfig.setProcessEngineName("ProcessEngineName");
 ProcessEngine processEngine = pconfig.buildProcessEngine();
 //依據名稱查詢流程引擎
 ProcessEngine processEngineName = ProcessEngines.getProcessEngine("ProcessEngineName");

  關閉流程引擎

processEngine.close();

具體實現方法:

public void close() {
    ProcessEngines.unregister(this);
    if (this.asyncExecutor != null && this.asyncExecutor.isActive()) {
        this.asyncExecutor.shutdown();
    }

    this.commandExecutor.execute(this.processEngineConfiguration.getSchemaCommandConfig(), new SchemaOperationProcessEngineClose());
    if (this.processEngineConfiguration.getProcessEngineLifecycleListener() != null) {
        this.processEngineConfiguration.getProcessEngineLifecycleListener().onProcessEngineClosed(this);
    }

    this.processEngineConfiguration.getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createGlobalEvent(ActivitiEventType.ENGINE_CLOSED));
}

 

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