🐳执行时生命周期
版本支持:v2.12.4+
LiteFlow在执行时也提供了一些生命周期接口,开发者可以根据需要去实现它们,从而做到在执行的特定时机插入自己的逻辑。
# FlowExecutor执行前后
这个生命周期发生在FlowExecutor对象执行规则的时候,每执行一次FlowExecutor就会调用一次。
开发者只要实现如下接口,并注册到spring/solon的上下文中,就可以声明了。
@Component
public class TestFlowExecuteLifeCycle implements PostProcessFlowExecuteLifeCycle {
@Override
public void postProcessBeforeFlowExecute(String chainId, Slot slot) {
//do something
}
@Override
public void postProcessAfterFlowExecute(String chainId, Slot slot) {
//do something
}
}
# Chain执行前后
这个生命周期发生在Chain对象执行的时候,每执行一次Chain就会调用一次。
开发者只要实现如下接口,并注册到spring/solon的上下文中,就可以声明了。
@Component
public class TestChainExecuteLifeCycle implements PostProcessChainExecuteLifeCycle {
@Override
public void postProcessBeforeChainExecute(String chainId, Slot slot) {
//do something
}
@Override
public void postProcessAfterChainExecute(String chainId, Slot slot) {
//do something
}
}
这个和FlowExecutor执行生命周期还是有区别的。比如执行以下规则mainChain
:
<chain id="mainChain">
THEN(a, b, subChain);
</chain>
<chain id="subChain">
WHEN(c, d);
</chain>
那么每执行一次,FlowExecutor的生命周期只会被触发1次,而Chain的生命周期会被触发2次,分别是mainChain
执行前后和subChain
执行前后。
提示
通过Slot对象其实可以拿到上下文,错误,Step很多元信息。
帮助我们改善此文档 (opens new window)
上次更新: 2024/10/14, 00:31:58