使用计时器事件

时间:2016-05-16 21:56:51

标签: java timer activiti bpm bpmn

我正在尝试将用户添加到我的Activiti身份服务中。我需要定期添加这些用户,所以我想我会使用timer事件创建一个简单的BPMN 2.0进程,并将其用作我的调度程序。我使用简单的日志语句测试了这个“调度程序”进程,该过程运行正常。但是,当我添加真实代码以保存用户时,Activiti似乎正在为每个添加的用户重新调用该过程。因此,如果我添加三个用户,在计时器事件超时后,我的Java方法也会被调用三次。

以下是服务任务中调用方法的片段:

User user = identityService.newUser(identifier);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setEmail(emailId);
user.setId(userId);
identityService.saveUser(user);

我已经用JUnit测试了这段代码,它运行正常。添加用户没有问题。只有在从Activiti流程调用此问题时才会出现问题。

这是我的BPMN 2.0流程:

BPMN 2.0 Process

我通过Activiti的saveUser方法来了解它在内部的作用。它在插入用户ActivitiEventType.ENTITY_CREATEDActivitiEventType.ENTITY_INITIALIZED时创建了两个事件。我不确定这是否会导致它再次触发过程。

我是Activiti的新手,所以我可能会缺少一些简单的东西。任何帮助都会非常感激。

0 个答案:

没有答案