• [JBPM3.2]TaskNode的signal属性详解


    TaskNode节点的signal属性决定了任务完成时对流程执行继续的影响,共有六种取值:unsynchronized,never,first,first-wait,last,last-wait。默认的取值是last。
        (1)signal="unsynchronized"流程不在当前结点停留,而直接推进到下一结点
        (2)signal="never"任务结束时,流程结点依然停留在本结点,直到你手动地调用token.signal()才会继续向下执行
        (3)signal="first"如果在当前结点创建了多个任务,第一个任务完成之后,流程就会走到下一个结点。
        (4)signal="first-wait"当前结点没有任务被创建时,会一直等待,当有任务被创建之后,它的作用就同signal="first"一样了。不管创建多少个任务,只要第1个任务完成,就会执行到下一结点。
        (5)signal="last"这个是默认的。如果在当前结点创建了多个任务,会一直等到最后一个任务完成时,流程才会到下一结点。
        (6)signal="last-wait"当前结点没有任务被创建时,会一直等待;当有任务被创建后,它的作用就同signal="last"一样了。
        由于TaskNode默认是会自动创建任务的,所以last-wait和first-wait通常都会与createTasks='false'一起使用,当有需要的时候,可以手动地创建任务,否则就没有等待的必要了。另外,需要说明的是,如果在TaskNode结点中的任务没有指定任务处理人,默认情况下,JBPM不会为流程创建任务,会自动执行到下一结点,所以在很多业务中,比如动态会签,或者在流程执行到某一结点之后多次对任务结点添加新任务,就会需要JBPM在此结点等待。last-wait与first-wait也正是用来处理这种较复杂的情况的。

  • 相关阅读:
    vue系列---响应式原理实现及Observer源码解析(七)
    学习Lowdb小型本地JSON数据库
    渐进式web应用开发---Service Worker 与页面通信(七)
    webpack4核心模块tapable源码解析
    electron 创建托盘应用
    运维堡垒机开发
    使用Supervisord软件管理go服务进程
    安装Harbor之http版本
    Ubuntu 18 LTS netplan 网络配置
    用GO开发企业级分布式云存储系统
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4403916.html
Copyright © 2020-2023  润新知