【JBPM4】流程分支fork - join
流程分支、聚合。流程每个分支节点都全部处理完成后,聚合到下一个节点。
JPDL
<?xml version="1.0" encoding="UTF-8"?>
<process key="fork" name="fork" xmlns="http://jbpm.org/4.4/jpdl">
<start g="56,154,48,48" name="start1">
<transition g="-63,-25" name="to fork1" to="fork1"/>
</start>
<end g="623,278,48,48" name="end1"/>
<fork g="191,158,48,48" name="fork1">
<transition g="-36,-25" name="to A" to="A"/>
<transition g="-34,-25" name="to B" to="B"/>
<transition g="-35,-25" name="to C" to="C"/>
</fork>
<join g="509,168,48,48" name="join1">
<transition g="-25,-26" name="to task1" to="合并"/>
</join>
<task assignee="userA" g="362,54,92,52" name="A">
<transition g="-61,-25" name="to join1" to="join1"/>
</task>
<task assignee="userB" g="360,160,92,52" name="B">
<transition g="-61,-25" name="to join1" to="join1"/>
</task>
<task assignee="userC" g="369,270,92,52" name="C">
<transition g="-61,-25" name="to join1" to="join1"/>
</task>
<task assignee="userM" g="607,167,92,52" name="合并">
<transition g="-54,-12" name="to end1" to="end1"/>
</task>
</process>
流程操作代码
//流程部署
public void deploy() {
super.startUp();
repositoryService.createDeployment().addResourceFromClasspath("com/tgb/node/fork/fork.jpdl.xml").deploy();
}
//创建流程实例
public void createInstance() {
super.startUp();
ProcessInstance processInstance = executionService.startProcessInstanceByKey("fork");
print("流程实例ID",processInstance.getId());
}
获取当前节点
public void getCurrectActivity() {
super.startUp();
String name = executionService.createProcessInstanceQuery().processInstanceId("fork.10001").uniqueResult().findActiveActivityNames().toString();
print("当前节点",name);
}
//获取任务列表
public void getTask() {
super.startUp();
List<Task> tasks = taskService.findPersonalTasks("userM");
print("任务节点名称",tasks.get(0).getActivityName());
print("任务节点ID",tasks.get(0).getId());
}
//完成任务
public void completeTask() {
super.startUp();
taskService.completeTask("20001");
}
【JBPM4】流程分支fork - join的更多相关文章
- 013-多线程-基础-Fork/Join框架、parallelStream讲解
一.概述 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 它同ThreadPoolExecut ...
- Java并发——Fork/Join框架
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ...
- Java 7 Fork/Join 框架
在 Java7引入的诸多新特性中,Fork/Join 框架无疑是重要的一项.JSR166旨在标准化一个实质上可扩展的框架,以将并行计算的通用工具类组织成一个类似java.util中Collection ...
- 《java.util.concurrent 包源码阅读》26 Fork/Join框架之Join
接下来看看调用ForkJoinTask的join方法都发生了什么: public final V join() { // doJoin方法返回该任务的状态,状态值有三种: // NORMAL, CAN ...
- Java并发——Fork/Join框架与ForkJoinPool
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/4631466. ...
- Fork/Join 框架-设计与实现(翻译自论文《A Java Fork/Join Framework》原作者 Doug Lea)
作者简介 Dong Lea任职于纽约州立大学奥斯威戈分校(State University of New York at Oswego),他发布了第一个广泛使用的java collections框架实 ...
- java成神之——Fork/Join基本使用
Fork/Join 大任务分小任务,小任务结果合并 ForkJoinPool pool = new ForkJoinPool(); RecursiveTask<Integer> task1 ...
- 并发编程学习笔记(12)----Fork/Join框架
1. Fork/Join 的概念 Fork指的是将系统进程分成多个执行分支(线程),Join即是等待,当fork()方法创建了多个线程之后,需要等待这些分支执行完毕之后,才能得到最终的结果,因此joi ...
- 并发编程之Fork/Join
并发与并行 并发:多个进程交替执行. 并行:多个进程同时进行,不存在线程的上下文切换. 并发与并行的目的都是使CPU的利用率达到最大.Fork/Join就是为了尽可能提高硬件的使用率而应运而生的. 计 ...
随机推荐
- POJ3026:Borg Maze (最小生成树)
Borg Maze Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18644 Accepted: 5990 题目链接:h ...
- Intellij IDEA 使用jrebel运行spring-boot并实现自动编译进行热部署
在使用jrebel运行spring-boot的时候,会发现一个很棘手的问题,就是项目不能自动编译,不能自动编译就不能实现热部署.(使用jar包方式运行的时候) 那么我们就要解决自动编译的问题,首先: ...
- (转)史上最好的Python线程指南
来自AstalWind的好文,彻底认识python线程 http://www.cnblogs.com/huxi/archive/2010/06/26/1765808.html . . . . .
- 【Tools】Windows下Github的配置和使用
1.在网址:http://windows.github.com/下载git软件,具体的安装步骤可以参见:Windows 系统下Git安装图解 2.同样根据上面的教程生成SSH key: 3.将publ ...
- 【Android】完善Android学习(二:API 2.3.4)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- bzoj 1452: [JSOI2009]Count ——二维树状数组
escription Input Output Sample Input Sample Output 1 2 HINT ———————————————————————————————————————— ...
- 【BZOJ】3779 重组病毒
[算法]Link-Cut Tree+线段树(维护DFS序) [题解]整整三天……T_T 这篇题解比较资瓷:permui 这道题虽然树形态没有变化,但用lct写的原因在于把题目中的操作一进行了神转化:每 ...
- 你自认为理解了JavaScript?【转】
第一题 if (!("a" in window)) { var a = 1; } alert(a); 第二题 var a = 1, b = function a(x) { x &a ...
- sass_安装问题(ERROR: Could not find a valid gem 'sass' (>= 0), here is why: Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: cert)
安装sass前需安装ruby 安装好ruby好打开命令行,输入 gem install sass 出现错误: ERROR: Could not find a valid gem 'sass' (> ...
- js_返回上一页(兼容苹果手机)
返回上一页功能是常见的功能. 常用的有以下三种代码: window.history.go(-1); //返回上一页 window.history.back(); //返回上一页 //如果要强行刷新的话 ...