2017-02-15 106 views
0

我们目前正在研究Activiti处理组织中的审批事件,但我们正在寻找在集装箱化环境*中构建REST API。容器化的tomcat实例将共享一个持久层,但由于实例的短暂性质,我们不能拥有Activiti维护的任何状态。短命环境中的Activiti Timer事件

我们没有想象这是一个问题,但对于定时边界事件,并将其绑到一个更广泛的问题有关如何Activiti的定时器工作。定时器的执行是保存在(永久)持久层中的日期/时间表达式的函数(因此在引擎与该表达式交互时对其进行评估)?或者它是一个保持运行时钟的过程,然后在过期时触发?后者是不可取的,但如果是这种情况,那么当Activiti层是无常的时候,我们如何建议我们跟踪边界定时器?

*(使用可在任何时间被吹走短暂的Tomcat层)

回答

0

真的很好的问题,我会在你想出的建筑很感兴趣。

定时器事件由Job Scheduler处理。 在更新版本的Activiti(> 5,16我相信)中,Timer和Async队列管理器已经分离,但仍使用相同的底层数据表(ACT_JOB)。

每个作业执行程序都会标记时间已到期的计时器事件块,并将它们放入计时器队列进行处理。您可以设置每次传递的任务数以及引擎配置中的超时和队列大小。因此,对于您的具体问题:“计时器的执行是保存在(永久)持久层中的日期/时间表达式的函数(因此在引擎与该表达式交互时对其进行评估)?或者是一个进程保持一个运行时钟,然后在它到期时触发?“

定时器ACT_JOB表包含定时器线程在查询要处理的下一组作业时将使用的DueDate(DateTime)。 其中,如果我理解你的语言选项1.

格雷格

变化