我使用最新的Acitiviti 5.22.0引擎(更具體地說我使用Alfresco Process Services 1.6.3),並且我實現了一個Spring bean,每10分鐘執行一次,以生成JSON表示我的所有流程(流程名稱,startDate,endDate,當前任務名稱和受理人)將其發送到審計服務器。問題是,我只需要發送自上次運行以來所有已更改的進程。Activiti BPMN引擎:在數據庫中存儲定製屬性
我並不想盡快發送JSON作爲一個過程的變化,但做到每10分鐘我的審覈系統的批量更新。
要做到這一點,我已經嘗試過不同的方法。我最近的一個:
- 創建一個事件監聽器bean偵聽所有PROCESS_STARTED,PROCESS_COMPLETED,PROCESS_CANCELLED,TASK_COMPLETED,...
- 每次被觸發的情況下,存儲過程變量「_dirty」,並將其設置爲真
- 將「_dirty」變量設置爲true的所有進程每隔10分鐘(執行我的JSON- bean執行)查詢
- 將JSON發送到審計系統後,將所有「_dirty」進程變量設置爲假。
該方法存在的問題:在進程結束後,我無法更新「_dirty」變量。至少我不知道如何。
我的第二種方法是將每個事件的processInstanceId存儲到「全局」屬性中,但我不知道如何在服務器重新啓動時將此「全局」屬性存儲到數據庫中。有沒有辦法在不創建額外的表,DAO等的情況下將屬性或實體持久化到DB中?
就如何解決這一任務的任何想法?所有提示都非常感謝!