2015-06-25 21 views
0

我有一個過程,每個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? - 我已經實現了我需要使用基於事後計時器的「都準備好同步?」 - 檢查。

回答

1

您也可以使用一些清理腳本從數據庫中刪除歷史條目。從歷史記錄中刪除信息是安全的 - 它不會影響運行時行爲。

Cheers Bernd

+0

謝謝,實際上,我現在正在考慮完全相同的解決方案 –

+0

我將此答覆標記爲答案,因爲它最適合我的情況 –

2

在Camunda的歷史是事件驅動。它可以

  1. 實施custom HistoryLevel控制產生的事件的數量和它們所包含的數據,
  2. 實施custom History Backend它允許你在默認處理程序以不同的方式LOGG的事件。

也許這對你有用?

+0

感謝您的回答。雖然我認爲唯一實用的解決方案是禁用某些執行的歷史事件 - 我無法想出任何解決方案,我應該如何使用HistoryLevel或HistoryBackend摺疊多執行循環。 –