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)); }