tomcat - 临时环境中的 Activiti 计时器事件

标签 tomcat containers microservices activiti bpmn

我们目前正在寻找 Activiti 来处理我们组织中的批准事件,但我们希望在容器化环境中构建 REST API*。容器化的 tomcat 实例将共享一个持久层,但由于实例的短暂性质,我们无法让 Activiti 维护任何状态。

我们不认为这是一个问题,但对于定时边界事件来说,它与一个更广泛的问题有关,即 Activiti 计时器工作。计时器的执行是否是保存在(永久)持久层中的日期/时间表达式的函数(因此在引擎与该表达式交互时对其进行评估)?或者它是一个保持运行时钟然后在它到期时触发的进程?两者中的后者不是可取的,但如果是这样的话,当 Activiti 层是非永久性的时,我们如何建议我们跟踪边界计时器?

*(使用可以随时被吹走的临时 Tomcat 层)

最佳答案

这个问题很好,我对您提出的架构非常感兴趣。

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

每个Job Executor都会标记一 block 超时的timer events,放入timer queue中处理。您可以在引擎配置中设置每次通过的任务数量以及超时和队列大小。

因此,对于您的具体问题:“计时器的执行是保存在(永久)持久层中的日期/时间表达式的函数(因此在引擎与该表达式交互时对其进行评估)吗?或者它是一个保持运行时钟然后在它到期时触发的进程?”

Timer ACT_JOB 表包含一个 DueDate (DateTime),Timer 线程在查询下一组要处理的作业时将使用它。 如果我理解您的语言,这就是选项 1 的变体。

格雷格

关于tomcat - 临时环境中的 Activiti 计时器事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250009/

相关文章:

html - 在 CSS : How to make an absolute-positioned content display outside of its relative-positioned parent? 中定位

architecture - Monolith 和 n Layer 有什么区别?

security - API 网关中的授权与微服务端点

tomcat - 如何使用 Maven(m2e 插件)自动将库部署到 Tomcat?

spring-tomcat-NoSuchMethodError setContentLengthLong

java - 如何以编程方式调整 mod_jk 负载均衡器配置中的禁用指令?

javascript - 在 tomcat 服务器上启用 gzip 压缩会使 js 的缩小变得多余?

language-agnostic - 非常大的列表使用什么语言?

python-3.x - 使用 `cherrypy.tree.mount`时无法连接到Dockerized CherryPy Server

java - 使用 Lagom 框架获取列表