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")设置。


猜你喜欢

转载自blog.csdn.net/u010009709/article/details/73549314