🐋FlowExecutor层面的线程池
LiteFlow执行一个流程是要用FlowExecutor
来驱动的。
最常用的就是flowExecutor.execute2Resp
方法,这也是官方推荐使用的方法。这个方法无论当中的节点是串行还是并行,最终当返回的时候LiteflowResponse
对象的时候,这条链路是全部执行完毕的。
但是如果业务中的组件需要处理很多业务,你的主程序不想阻塞的在execute2Resp
这个方法上的时候,你可以使用flowExecutor.execute2Future
方法。
这时候,方法不再返回LiteflowResponse
对象,而是返回Future<LiteflowResponse>
对象,且不会阻塞。这样主线程就可以后续需要使用的地方拿到future中的LiteflowResponse
对象,从而实现主线程无阻塞的效果。
当然,有Future
对象,就一定会有线程池。这个线程池在LiteFlow是单独配置的。框架给了默认值:
liteflow.main-executor-works=64
liteflow.main-executor-class=com.yomahub.liteflow.thread.LiteFlowDefaultMainExecutorBuilder
当然也支持自定义线程池,你需新建一个类,然后实现ExecutorBuilder
接口:
public class CustomThreadBuilder implements ExecutorBuilder {
@Override
public ExecutorService buildExecutor() {
return Executors.newCachedThreadPool();
}
}
帮助我们改善此文档 (opens new window)
上次更新: 2025/02/20, 23:47:07