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需要控制的一些内容。