solon-flow 你好世界!

news/2025/1/27 19:46:09/

solon-flow 是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等…)。提供有 “开放式” 驱动定制支持,像 jdbc 有 mysql 或 pgsql 等驱动,可为不同的应用场景定制不同的驱动处理。

1、Helloworld

1.1、新建项目

可以用 Solon Initializr 新建 solon-lib 模板项目,之后添加 solon-flow 依赖(也支持在 spring 或 vert.x 或 jfinal 项目里使用)。

<dependency><groupId>org.noear</groupId><artifactId>solon-flow</artifactId>
</dependency>
1.2、添加配置

app.yml 里添加应用配置,指定 flow 为流处理配置存放地:

solon.flow:- "classpath:flow/*"

添加流处理配置(支持 json 或 yml 格式),例: flow/demo1.chain.yml

id: "c1"
nodes: - { id: "n1", type: "start", link: "n2"}- { id: "n2", type: "execute", link: "n3", task: "System.out.println(\"hello world!\");"}- { id: "n3", type: "end"}

示意图:

1.3、代码应用

应用启动时,可以打印:hello world!

java">@Component
public class DemoCom implements LifecycleBean {@Inject private FlowEngine flowEngine;@Overridepublic void start() throws Throwable {flowEngine.eval("c1");}
}

2、转换 drools 的规则参考

配置业务处理规则:flow/r1.chain.yml。使用 solon-flow 的简化模式,很适配转换 drools dsl 的规则:

id: "r1"
title: "评分规则"
nodes:- { type: "start"}- { when: "order.getAmount() >= 100", task: "order.setScore(0);"}- { when: "order.getAmount() > 100 && order.getAmount() <= 500", task: "order.setScore(100);"}- { when: "order.getAmount() > 500 && order.getAmount() <= 1000", task: "order.setScore(500);"}- { type: "end"}

规则应用:

java">@Component
public class DemoCom {@Inject FlowEngine flowEngine;//评分public int score(Order order) {//执行ChainContext ctx = new ChainContext();ctx.put("order", order); //模型数据,可被规则直接使用flowEngine.eval("r1", ctx);//获取评分结果return order.getScore();}
}

http://www.ppmy.cn/news/1566307.html

相关文章

泷羽Sec-Powershell3

学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#xff0c;切勿触碰…

NLP自然语言处理中Word2Vec和GloVe概述

【1】GloVe和Word2Vec是什么 GloVe&#xff08;Global Vectors for Word Representation&#xff09;和Word2Vec是两种广泛使用的词嵌入方法&#xff0c;它们都旨在将词语转换为高维向量表示&#xff0c;以便于在各种自然语言处理任务中使用。尽管这两种方法的目标相似&#x…

Elasticsearch+kibana安装(简单易上手)

下载ES( Download Elasticsearch | Elastic ) 将ES安装包解压缩 解压后目录如下: 修改ES服务端口&#xff08;可以不修改&#xff09; 启动ES 记住这些内容 验证ES是否启动成功 下载kibana( Download Kibana Free | Get Started Now | Elastic ) 解压后的kibana目…

.NET 9 微软官方推荐使用 Scalar 替代传统的 Swagger

在 .NET 9 中&#xff0c;微软官方推荐使用 Scalar 替代传统的 Swagger&#xff08;Swashbuckle&#xff09;作为 API 文档和交互工具。Scalar 是一个现代化的 API 平台&#xff0c;支持 OpenAPI/Swagger 规范&#xff0c;提供精美的文档界面和强大的功能。 一、如何在 .NET 9…

Java设计模式 九 桥接模式 (Bridge Pattern)

桥接模式 (Bridge Pattern) 桥接模式是一种结构型设计模式&#xff0c;它的核心思想是将抽象部分与实现部分分离&#xff0c;使它们可以独立变化。这种模式通过组合而不是继承的方式来扩展功能&#xff0c;从而减少类之间的耦合度。 1. 模式结构 桥接模式的结构包括以下角色&…

在php中怎么打开OpenSSL

&#xff08;点击即可进入聊天助手&#xff09; 背景 在使用php做一些项目时,有用到用户邮箱注册等,需要开启openssl的能力 在php系统中openssl默认是关闭状态的,在一些低版本php系统中,有的甚至需要在服务器终端后台,手动安装 要打开OpenSSL扩展&#xff0c;需要进行以下步骤 …

IPoIB(IP over InfiniBand)数据接收与发送机制详解

IPoIB&#xff08;IP over InfiniBand&#xff09;是一种在InfiniBand网络上实现IP协议的技术&#xff0c;它允许在InfiniBand网络上传输IP数据包。IPoIB通过将IP数据包封装在InfiniBand的数据包中&#xff0c;实现了在InfiniBand网络上的高效通信。本文将详细分析IPoIB如何接收…

关于六通道串口服务器详细讲解

一、概述 1.1 功能 1.1.1 基本功能 串口服务器是串口 RS232/422/485 和以太网之间的一个转换器&#xff0c;实现串口数 据和以太网数据的双向透明传输&#xff0c;可以让串口设备立即联网&#xff0c;典型应用拓扑如下&#xff1a; 1.1.2 特色功能 串口服务器具有级联…