Flowable delegateexecution 详解
时间: 2023-06-13 09:05:20 浏览: 87
Flowable是一个流程引擎框架,delegateExecution是它的一个接口,用于在流程执行期间与流程引擎进行交互。
delegateExecution接口提供了一系列方法,允许我们在流程执行期间获取和设置流程变量、获取和设置流程实例、任务和执行对象的信息、发送消息和信号,以及对流程进行控制等操作。
其中,常用的方法包括:
- getVariable和setVariable:获取和设置流程变量;
- getProcessInstanceId:获取当前流程实例的ID;
- getCurrentActivityId和getCurrentActivityName:获取当前执行对象的ID和名称;
- getEventName:获取当前触发的事件名称;
- signal和messageEventReceived:发送信号和消息。
使用delegateExecution可以灵活地控制流程的执行,对于流程引擎的开发和集成非常有帮助。
相关问题
Flowable delegateexecution parent
### 回答1:
在Flowable中,delegateExecution是一个接口,用于在流程执行过程中处理事件和执行自定义逻辑。当一个子流程实例被创建时,可以使用delegateExecution.getParentId()方法来获取该子流程的父流程实例ID。使用delegateExecution.getProcessEngineServices().getRuntimeService().createExecutionQuery()方法,可以创建一个ExecutionQuery对象,用于查询所有与当前流程实例相关的执行实例。而使用delegateExecution.getProcessEngineServices().getRuntimeService().createProcessInstanceQuery()方法,则可以创建一个ProcessInstanceQuery对象,用于查询所有与当前流程实例相关的流程实例。这些方法可以在处理事件或执行自定义逻辑时使用,以获取与当前流程实例相关的信息。
### 回答2:
Flowable delegateExecution中的parent属性是指当前执行的流程实例的父级执行。在流程中,一个流程实例可以由多个子流程实例组成,其中每个子流程实例又可以有自己的子流程实例。通过parent属性,可以方便地获取当前执行流程实例的父级流程实例。
通过delegateExecution.getParent()方法可以获取父级执行流程实例。在使用时,可以将其用于获取父级执行流程实例的相关信息,如父级流程实例的ID、名称等。通过这些信息,可以对父级流程实例进行操作,比如获取其变量、审批记录等等。
使用parent属性还可以实现流程层级控制和协同处理。例如,在一个采购流程中,可以设置一个父级流程实例来管理整个采购流程,然后在子流程中进行具体的采购事项。通过parent属性,可以将子流程实例与父级流程实例关联起来,实现流程的层级管理。同时,在子流程中可以使用parent属性获取父级流程实例的变量信息,将其传递给子流程,从而实现协同处理。
总之,Flowable delegateExecution中的parent属性是用于获取当前执行流程实例的父级流程实例的属性。通过它,可以方便地获取父级流程实例的相关信息,并进行流程层级控制和协同处理。
### 回答3:
Flowable delegateExecution parent是指在Flowable流程中,获取当前执行任务的父级执行对象。
在Flowable流程中,每个执行任务都有一个对应的Execution对象,该对象存储了当前任务的执行信息。在Flowable中,每个执行任务都可以通过delegateExecution对象来获取和修改当前任务的执行信息。而delegateExecution.parent方法,即为获取当前执行任务的父级执行对象的方法。
父级执行对象指的是当前执行任务的上一级执行任务对象,即该任务的直接上级任务。通过调用delegateExecution.parent()方法,可以获取到当前任务的父级执行对象,进而获取父级任务的相关信息。
通过获取父级执行对象,可以实现在Flowable流程中的任务层级关系的查找和操作。例如,可以通过获取父级执行任务对象,获取上一级任务的执行信息,进而判断上一级任务的状态和结果,并在当前任务中根据上一级任务的状态和结果进行相应的处理。
总之,Flowable delegateExecution parent方法是在Flowable流程中获取当前执行任务的父级执行对象的方法,通过该方法可以实现对任务执行层级关系的查找和操作,进而实现任务之间的协调和控制。
Flowable API 详解
Flowable是RxJava2的一个子集,它提供了一些额外的方法和特性来处理背压问题,可以处理大量数据和高负载的场景。下面是Flowable API的详解:
1. 创建Flowable对象
- Flowable.just(item1, item2, item3, ...):创建一个发射固定数据项的Flowable对象。
- Flowable.fromArray(items):创建一个发射数组中所有数据项的Flowable对象。
- Flowable.fromCallable(callable):创建一个发射Callable返回值的Flowable对象。
- Flowable.fromPublisher(publisher):将一个Publisher对象转换为一个Flowable对象。
- Flowable.fromIterable(iterable):创建一个发射Iterable中所有数据项的Flowable对象。
2. 变换Flowable对象
- map(function):对发射的每个数据项应用一个函数,返回一个新的Flowable对象。
- flatMap(function):对发射的每个数据项应用一个函数,返回一个新的Flowable对象,将所有的Flowable对象发射的数据项合并成一个Flowable对象。
- concatMap(function):类似于flatMap,但是保证顺序,依次处理每个数据项,不会交叉处理。
- switchMap(function):类似于flatMap,但是只处理最新的数据项,忽略旧的数据项。
3. 过滤Flowable对象
- filter(predicate):筛选出发射的数据项中满足条件的数据项。
- distinct():去除重复的数据项。
- take(count):仅发射前count个数据项。
- skip(count):跳过前count个数据项。
- takeWhile(predicate):仅发射满足条件的数据项,直到不满足条件为止。
- skipWhile(predicate):跳过满足条件的数据项,直到不满足条件为止。
4. 操作Flowable对象
- doOnNext(action):在每个数据项发射之前执行一个操作。
- doOnComplete(action):在完成时执行一个操作。
- doOnError(action):在发生错误时执行一个操作。
- onErrorResumeNext(function):当发生错误时,返回一个新的Flowable对象来继续发射数据项。
- onErrorReturnItem(item):当发生错误时,返回一个指定的数据项来终止发射数据项。
5. 处理背压问题
- onBackpressureBuffer():缓存所有发射的数据项,如果缓存区已满,则抛出MissingBackpressureException异常。
- onBackpressureDrop():丢弃所有发射的数据项,如果缓存区已满,则不会抛出异常。
- onBackpressureLatest():仅缓存最新的数据项,如果缓存区已满,则覆盖最老的数据项。
以上仅列举了部分Flowable API,还有很多其他的方法和特性可以根据实际需求进行选择和使用。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)