ProcessEngineImpl提供的服务

来源:互联网 发布:遗憾 许美静 知乎 编辑:程序博客网 时间:2024/04/30 16:26

 

ProcessEngineImpl除了实现ProcessEngine中的四个方法外,还增加了两个获取服务的方法。


在ProcessEngine中声明了获取四个服务的方法,这四个服务有一个共同的特点:即他们都是CommandExecutor适配器。(见ProcessEngine的分析)
在ProcessEngineImpl增加的两个服务与上面说的四个服务不同,一个是持久化服务的接口PersistenceSessionFactory ,另一个是后台任务执行调度 JobExecutor 。


JobExecutor是processEngine创建完毕后,就开始运行了。它从ACT_JOB 表中查找满足这个条件的记录: RETRIES_ > 0 并且  (DUEDATE_ 为nul 或者 DUEDATE_ < 现在的时间) 并且 ( LOCK_OWNER_ 为null 或者 LOCK_EXP_TIME_ < 现在的时间)
如果执行调度队列中允许进入的最大任务数大于正在运行的任务数,那么就执行上面的语句,从数据库中获取更多的任务来执行 。

默认的PersistenceSessionFactory实现是ibatis的,封装了持久层的session、数据库连接池,以及activiti需要控制的一些内容。