首页 > 解决方案 > Activiti:仅运行与特定流程定义 ID 关联的计时器作业

问题描述

我有两个运行 activiti 引擎的服务,每个服务部署不同的流程定义。processX 由 serviceX 部署,processY 由 serviceY 部署。processX 和 processY 都有定时器事件,分别调用 serviceX 和 serviceY 中的服务方法。

我遇到了一个问题,即进程X的作业被服务Y拾取,而进程Y的作业被服务X拾取。

根据https://www.activiti.org/userguide/#async_executor_design,这是预期的行为。所有正在运行的 activiti 引擎实例都指向同一个模式,轮询作业表并执行堆栈顶部的任何内容,而不管流程定义 ID 是什么。

有没有办法在 activiti 配置中指定只有与特定流程定义 ID 关联的作业才应该由给定的引擎实例执行?

标签: springspring-bootactiviti

解决方案


这似乎是不可能的

Activiti 的架构是这样构建的,即每个共享 Activiti DB 并运行 activiti 引擎实例的应用程序都应该能够执行存储在 activiti 数据库中的任何作业

如果您有不同的应用程序,只能执行特定的作业,它们应该由不同的Activiti DB支持

对我来说有点像设计疏忽,但话说回来,也许我在滥用拱门


推荐阅读