避免长时间运行的循环过程的历史表爆炸?

时间:2015-06-25 06:07:56

标签: java bpm camunda

我有一个进程,每1分钟迭代一次条件循环。这个过程本身可以运行数周,但我预计99%的历史记录是反映执行调用的重复条目,这是所述循环​​的一部分。例如:

|15:34:30.167|15:34:30.238|TimerCatchEvent|
|15:34:30.258|15:34:30.323|CheckConditionServiceTask|
|15:34:30.371|15:34:30.410|ExclusiveGateway1|
|15:34:30.457|15:34:30.501|ReturningtoTimerEventServiceTask|
|15:35:30.167|15:35:30.238|TimerCatchEvent|
|15:35:30.258|15:35:30.323|CheckConditionServiceTask|
|15:35:30.371|15:35:30.410|ExclusiveGateway1|
|15:35:30.457|15:35:30.501|ReturningtoTimerEventServiceTask|
|15:36:30.167|15:36:30.238|TimerCatchEvent|
|15:36:30.258|15:36:30.323|CheckConditionServiceTask|
|15:36:30.371|15:36:30.410|ExclusiveGateway1|
|15:36:30.457|15:36:30.501|ReturningtoTimerEventServiceTask|

有没有办法以某种方式在camunda级别上折叠这些重复的历史记录条目?或者也许有人提出了解决这个问题的其他方法?

P.S。这是关于跨进程同步的问题的后续问题:Cross-process synchronization in Camunda? - 我已经使用基于事后计时器的“已经准备好同步来实现我需要的东西了吗?” - 检查。

2 个答案:

答案 0 :(得分:2)

在Camunda,历史是事件驱动的。有可能

  1. 实施custom HistoryLevel控制产生的事件数量及其包含的数据
  2. 实现custom History Backend,允许您以与默认处理程序不同的方式记录事件。
  3. 也许这对你有用吗?

答案 1 :(得分:1)

您还可以使用一些清理脚本从数据库中删除历史记录条目。从历史记录中删除信息是安全的 - 它不会影响运行时行为。

干杯 贝恩德