activiti定时边界事件
流程图:
serviceTask处理:
- @Component
- public class SwTimeOutProcessorListener implements JavaDelegate {
- @Autowired
- private TimeOutManagerService timeOutManagerService;
- @Autowired
- private TaskService taskService;
- @Override
- public void execute(DelegateExecution execution) throws Exception {
- //获得事务id
- String businessKey = execution.getProcessBusinessKey();
- Task task = taskService.createTaskQuery().processInstanceId(execution.getProcessInstanceId()).singleResult();
- String assignee =task.getAssignee();
- System.out.println(assignee);
- //插入超时记录
- //timeOutManagerService.addTimeOut(Integer.valueOf(assignee), Integer.valueOf(businessKey));
- }
- }
定时边间事件:cancelActivity 说明:
cancelActivity属性:true时,当timer触发时,当前的activity被中断(流程结束);
false时,当timer触发时,不会被中断(流程原点,流程不会结束),
当执行循环定时器时,虽然cancelActivity=true,但是该acitivity还是会持续生成
cancelActivity默认为true中断事件(结束流程)
cancelActivity为false非中断事件(还停留在原地,流程不结束)
中断和非中断的事件还是有区别的。默认是中断事件。
非中断事件的情况,不会中断原始环节,那个环节还停留在原地。 对应的,会创建一个新分支,并沿着事件的流向继续执行。
例子: