iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Flowable ReceiveTask使用场景分析
  • 323
分享到

Flowable ReceiveTask使用场景分析

Flowable ReceiveTask使用场景Flowable ReceiveTask 2022-11-13 18:11:43 323人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 使用场景2. 实践2.1 绘制流程图2.2 部署2.3 分析1. 使用场景 在之前的案例中,松哥和大家举例最多的 Task 主要是 UserTask 和 ServiceTa

1. 使用场景

在之前的案例中,松哥和大家举例最多的 Task 主要是 UserTask 和 ServiceTask,ReceiveTask 虽然也和大家提过但是没有仔细讲过,今天我们就来捋一捋 ReceiveTask 在 Flowable 中到底怎么玩。

接受任务(Receive Task),接触过 Flowable 的小伙伴应该是见过或者听说过,它的图标如下图:

ReceiveTask 可以算是 Flowable 中最简单的一种任务,当该任务到达的时候,它不做任何逻辑,而是被动地等待用户 Trigger。

ReceiveTask 往往适用于一些不明确的阻塞,例如:一个复杂的计算需要等待很多条件,这些条件是需要人为来判断是否可以执行,而不是直接执行,这个时候,工作人员如果判断可以继续了,那么就 Trigger 一下使流程继续向下执行。

基于以上介绍,ReceiveTask 还有一个中文名字叫做等待任务,也就是说,流程走到 ReceiveTask 这个节点的时候,就卡住了,需要用户手动点一下,流程才会继续向下走。

2. 实践

2.1 绘制流程图

我们绘制一个简单的流程图来看下 ReceiveTask 到底是啥样子,流程图如下:

ReceiveTask 图标上有一个信封。

小伙伴们绘制的时候,首先选择用户任务:

然后点击设置按钮,将用户任务切换为 ReceiveTask 即可:

绘制完成后,我们下载这个流程图对应的 XML 文件。

来看看,带 ReceiveTask 的流程图是下面这样的:

<process id="receiveTask_demo" name="接收任务测试流程" isExecutable="true">
  <documentation>接收任务测试流程</documentation>
  <startEvent id="startEvent" flowable:fORMFieldValidation="true"></startEvent>
  <sequenceFlow id="sid-9E7B327E-EFC8-4D29-8C6F-157D5E1B7A4E" sourceRef="startEvent" targetRef="todaySales"></sequenceFlow>
  <receiveTask id="todaySales" name="统计今日销售额"></receiveTask>
  <receiveTask id="sendMsg" name="发送今日销售业绩给老板"></receiveTask>
  <endEvent id="endEvent"></endEvent>
  <sequenceFlow id="s2" sourceRef="todaySales" targetRef="sendMsg"></sequenceFlow>
  <sequenceFlow id="s3" sourceRef="sendMsg" targetRef="endEvent"></sequenceFlow>
</process>

2.2 部署

这个松哥在之前的文章中已经反复介绍过多次了,这里就不再赘述了,大家参考我们之前的文章部署并启动上面这个流程。

2.3 分析

当流程启动之后,按照我们前面文章的分析,我们先去数据库ACT_RU_TASK 表进行查看,发现该表空空如也。也就是 ReceiveTask 并不会被记录在 ACT_RU_TASK 表中,他们只是单纯的被记录在 ACT_RU_EXECUTION 表中,因为在该表中,我们可以查看 ReceiveTask 的记录。

对于 ReceiveTask 的触发方式也很简单,如下:

@Test
void test10() {
    List<Execution> list = runtimeService.createExecutionQuery().activityId("todaySales").list();
    for (Execution execution : list) {
        runtimeService.trigger(execution.getId());
    }
}

由于 ReceiveTask 的触发需要传入的参数是执行实例 ID 而不是流程实例 ID,所以我们要查询出来当前待触发的执行实例 ID。具体的查询方式就是根据 ReceiveTask 的节点名称去查询。

查询到执行实例 ID 之后,调用 trigger 方法完成触发,使得流程继续向下走。

好啦,现在流程进入到发送今日销售业绩给老板这个环节了,老办法继续查询并执行:

@Test
void test10() {
    List<Execution> list = runtimeService.createExecutionQuery().activityId("sendMsg").list();
    for (Execution execution : list) {
        runtimeService.trigger(execution.getId());
    }
}

这个执行完层后,这个流程就结束了。现在我们去查看 ACT_RU_ACTINST 表已经空了,查看 ACT_RU_EXECUTION 表也空了。

以上就是Flowable ReceiveTask使用场景分析的详细内容,更多关于Flowable ReceiveTask使用场景的资料请关注编程网其它相关文章!

--结束END--

本文标题: Flowable ReceiveTask使用场景分析

本文链接: https://www.lsjlt.com/news/169192.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flowable ReceiveTask使用场景分析
    目录1. 使用场景2. 实践2.1 绘制流程图2.2 部署2.3 分析1. 使用场景 在之前的案例中,松哥和大家举例最多的 Task 主要是 UserTask 和 ServiceTa...
    99+
    2022-11-13
    Flowable ReceiveTask使用场景 Flowable ReceiveTask
  • SpringBoot @ModelAttribute使用场景分析
    前言 项目中遇到这么一个使用场景,用户的登录信息给予token保存,在需要有登录信息的地方,每次都要去获取用户Id,但每次在请求方法中去获取用户信息,代码重复,冗余,很low于是想到...
    99+
    2022-11-12
  • nginxrewrite功能使用场景分析
    目录前言rewrite简介Rewrite规则与指令set指令if指令return指令rewrite指令URL和URI的区别rewrite_log指令一、rewrite配置域名跳转1、...
    99+
    2022-11-13
  • Go中sync 包Cond使用场景分析
    目录背景Cond 简介使用示例Signal的使用场景Broadcast的使用场景注意事项背景 编写代码过程中, 通常有主协程和多个子协程进行协作的过程,比如通过 WaitGroup ...
    99+
    2023-03-03
    Go 使用 sync.cond go sync包cond使用
  • Vue中created和mounted使用场景分析
    目录一、生命周期概念二、浏览器渲染过程三、生命周期中的浏览器渲染beforeCreate阶段created阶段beforeMount阶段mounted阶段四、使用场景五、常见相关问题...
    99+
    2023-05-20
    Vue中created和mounted Vue created和mounted
  • 分析MySQL锁的适用场景
    MySQL 锁的应用场景分析在开发应用程序时,常常需要对数据库进行读取和写入操作。然而,当多个用户同时对数据库进行操作时,就会出现并发访问的问题。为了保证数据的一致性和完整性,MySQL 提供了锁机制来控制对数据库的并发操作。本文将分析 M...
    99+
    2023-12-21
    MySQL 分析
  • Java Shutdown Hook场景使用及源码分析
    目录背景Shutdown Hook 介绍关闭钩子被调用场景注意事项实践Shutdown Hook 在 Spring 中的运用背景 如果想在 Java 进程退出时,包括正常和异常退出...
    99+
    2022-11-12
  • Go并发控制Channel使用场景分析
    1. 前言 channel一个类型管道,通过它可以在goroutine之间发送和接收消息。它是Golang在语言层面提供的goroutine间的通信方式。 Channel是Go中的一...
    99+
    2022-11-12
  • python获取redismemory使用情况场景分析
    目录一、环境搭建二、代码实现1、StrictRedis vs Redis2、 实验代码三、redis info项目研发过程中,用到Python操作Redis场景,记录学习过程中的心得...
    99+
    2022-12-21
    python redis memory使用 python获取redis
  • Vue中$set()的使用方法场景分析
    目录Vue中$set()的使用方法前言$set()的应用场景一$set()的应用场景二补充:vue中$set的用法$set用于更新数组:$set用于更新对象:Vue中$set()的使...
    99+
    2023-02-18
    Vue中$set()使用 Vue中$set()用法 Vue中$set()
  • Javascript闭包使用场景的原理分析
    这篇文章给大家分享的是有关Javascript闭包使用场景的原理分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、闭包Javascript中,只有函数内部的子函数才能读取局部变量,闭包就是能够读取其他函数内部...
    99+
    2023-06-25
  • React中的Context应用场景分析
    Context定义和目的 Context 提供了一种在组件之间共享数据的方式,而不必显式地通过组件树的逐层传递 props。 应用场景 哪些数据会需要共享? Context 设计目...
    99+
    2022-11-12
  • git工作流应用场景分析
    这篇文章主要介绍“git工作流应用场景分析”,在日常操作中,相信很多人在git工作流应用场景分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”git工作流应用场景分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • Go并发控制WaitGroup的使用场景分析
    1. 前言 上一篇介绍了 Go并发控制--Channel 使用channel来控制子协程的优点是实现简单,缺点是当需要大量创建协程时就需要有相同数量的channel,而且对于子协程继...
    99+
    2022-11-12
  • python获取redis memory使用情况场景分析
    目录一、环境搭建二、代码实现1、StrictRedis vs Redis2、 实验代码三、redis info项目研发过程中,用到python操作Redis场景,记录学习过程中的心得体会。 一、环境搭建 Windows ...
    99+
    2022-12-21
    pythonredismemory使用 python获取redis
  • Sharding-Proxy分库分表和数据加密使用场景分析
    目录Sharding-Proxy分库分表和数据加密使用场景配置文件讲解server.yamlconfig-sharding.yamlconfig-encrypt.yaml其他使用情况...
    99+
    2022-11-13
  • golang 中的 nil的场景分析
    源码中的 nil 是这样定义的 // nil is a predeclared identifier representing the zero value for a // p...
    99+
    2022-11-11
  • UCloud Elasticsearch服务UES应用场景分析
    UCloud Elasticsearch服务(UES)是一种基于开源搜索引擎Elasticsearch构建的云搜索服务,适用于各种应...
    99+
    2023-09-23
    UCloud
  • SpringBoot集成EasyExcel的应用场景分析
    1、介绍 官网地址:https://www.yuque.com/easyexcel 特点: 1、Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他...
    99+
    2022-11-12
  • Springboot集成ClickHouse及应用场景分析
    ClickHouse应用场景: 1.绝大多数请求都是用于读访问的2.数据需要以大批次(大于1000行)进行更新,而不是单行更新;或者根本没有更新操作3.数据只是添加到数据库,没有必要...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作