gpt4 book ai didi

java - 多实例 Activiti 6 设置中的作业取消

转载 作者:行者123 更新时间:2023-12-02 08:45:07 25 4
gpt4 key购买 nike

我有一项服务可以启动 Activiti 实例并帮助进行作业管理。为了满足可扩展性需求,我计划剥离该服务的多个实例。这意味着负载均衡器后面有多个 Activit 6 引擎实例。所有这些最终都连接到同一个数据库。

作业取消在单实例设置中工作得非常好。但是,当我有多个 Activiti 实例时,取消功能无法可靠地工作。进一步解释一下,如果 Activiti 实例 #1 已启 Action 业 #1 和 #2,而实例 #2 已启 Action 业 #3 和 #4。如果将作业 #1 的取消请求发送到 Activiti #1,则可以正常工作,但如果该请求发送到 #2,则作业取消不起作用。

我完成这项工作的一种方法是将每个取消请求广播到每个 Activiti 实例。另一个是我在外部保存与每项工作相关的实例。这两个看起来都不干净。

我的问题 - 处理此类场景的最佳实践是什么?有没有可以遵循的推荐模式?

提前致谢。

最佳答案

显然,对于单个引擎实例,正确的答案是使用信号或消息事件处理程序,但是正如您所说,这不适用于多个引擎实例。广播选项可能是最简单的,如果实例不在消息有意义的进程部分中,它将被忽略。更干净但更复杂的解决方案是将这种处理外部化到应用程序表中,甚至是像文件系统上的文件一样简单的东西。实例将查找“标志”并退出,但是您需要确保在最后一个实例退出时清除该标志。不管怎样,我想不出引擎本身内部有任何东西可以提供您所需要的东西。

关于java - 多实例 Activiti 6 设置中的作业取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61127418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com