0
点赞
收藏
分享

微信扫一扫

Camunda SendTask和ReceiveTask


Activiti也有ReceiveTask,作用是进入该节点将自动挂起流程实例,直到被显式的唤醒。Activiti有MailTask是专门发送邮件的。

Camunda同时有SendTask和ReceiveTask,一般成对出现,感觉是将Activiti中的ReceiveTask拆成2个步骤,SendTask用户唤醒ReceiveTask中的流程。

ReceiveTask:进入该节点,任务会被自动挂起,进入等待流程。

SendTask:发送信号唤醒正在进入等待的流程。

一:bpmn

Camunda SendTask和ReceiveTask_等待状态


Camunda SendTask和ReceiveTask_sendtask_02

二:java

@Service
public class SendTaskService implements JavaDelegate {
    @Autowired
    private RuntimeService runtimeService;

    @Override
    public void execute(DelegateExecution execution) throws Exception {
        runtimeService.createMessageCorrelation("receive_task_msg")
                .processInstanceBusinessKey("key001")
                .correlate();
    }
}

三:test

// 1.先启动接收
repositoryService.createDeployment().name("接收流程")
        .addClasspathResource("bpmn/receive_task.bpmn").deploy();
runtimeService.startProcessInstanceByKey("ReceiveTaskProces", "key001");

// 2.再发送
repositoryService.createDeployment().name("发送流程")
        .addClasspathResource("bpmn/send_task.bpmn").deploy();
runtimeService.startProcessInstanceByKey("SendTaskProcess", "key001");

四:db

  1. 先启动接收流程,StartEvent -> ReceiveTask 会进入挂起等待状态。
  2. 后启动发送流程,StartEvent -> SendTask -> UserTask。
  3. 接收流程因收到发送流程的唤醒,所以接收流程也来到了UserTask。
  4. 最终两个流程都进入到下一个节点UserTask。



举报

相关推荐

0 条评论