我使用最新的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中?
就如何解决这一任务的任何想法?所有提示都非常感谢!