All Projects → rule-engine → Rule Engine

rule-engine / Rule Engine

Licence: apache-2.0
🔥 🔥 🔥 📌 规则引擎 📌 RuleEngine 基于web可视化配置,简单高效快捷。

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rule Engine

Rule Engine Front
🔥 🔥 🔥 📌 规则引擎前端 📌 RuleEngine 基于web可视化配置,简单高效快捷。
Stars: ✭ 40 (-84.37%)
Mutual labels:  rule-engine, star
Jetlinks Community
JetLinks 基于Java8,Spring Boot 2.x ,WebFlux,Netty,Vert.x,Reactor等开发, 是一个全响应式的企业级物联网平台。支持统一物模型管理,多种设备,多种厂家,统一管理。统一设备连接管理,多协议适配(TCP,MQTT,UDP,CoAP,HTTP等),屏蔽网络编程复杂性,灵活接入不同厂家不同协议等设备。实时数据处理,设备告警,消息通知,数据转发。地理位置,数据可视化等。能帮助你快速建立物联网相关业务系统。
Stars: ✭ 2,405 (+839.45%)
Mutual labels:  rule-engine, spring-boot
Kogito Runtimes
Kogito Runtimes - Kogito is a cloud-native business automation technology for building cloud-ready business applications.
Stars: ✭ 188 (-26.56%)
Mutual labels:  rule-engine, spring-boot
devs
Devs是一款轻量级的规则引擎
Stars: ✭ 15 (-94.14%)
Mutual labels:  rule-engine
hmrb
Python Rule Processing Engine 🏺
Stars: ✭ 65 (-74.61%)
Mutual labels:  rule-engine
SRTS-Expanded
Rimworld mod
Stars: ✭ 15 (-94.14%)
Mutual labels:  star
graal
Graal is a Java toolkit for querying knowledge bases within the framework of existential rules, aka Datalog+/-. See Graal's homepage:
Stars: ✭ 38 (-85.16%)
Mutual labels:  rule-engine
ADE9078-3PhaseWattmeter
An Isolated design for a demo board using the Analog Devices ADE9078 3 phase AC wattmeter. Design allows both WYE (STAR) and Delta (TRIANGLE) distributions to be measured along with Blondel and non-Blondel measurement schemes. The project includes a SPI based Arduino style library.
Stars: ✭ 24 (-90.62%)
Mutual labels:  star
stella
( •ॢ◡-ॢ)-♡ ☆.。.:*・°☆.。.:*・°☆
Stars: ✭ 28 (-89.06%)
Mutual labels:  star
react-star-ratings
A customizable svg star rating component for selecting x stars or visualizing x stars
Stars: ✭ 128 (-50%)
Mutual labels:  star
blob
个人前端技术博客,各种源码分析,工具分享
Stars: ✭ 26 (-89.84%)
Mutual labels:  star
StarView
即刻 APP 收藏按钮的实现
Stars: ✭ 73 (-71.48%)
Mutual labels:  star
rule-engine
Forward chaining rule engine with an extensible DSL
Stars: ✭ 28 (-89.06%)
Mutual labels:  rule-engine
evrete
Evrete is a lightweight and intuitive Java rule engine.
Stars: ✭ 37 (-85.55%)
Mutual labels:  rule-engine
emqx-rule-engine
EMQ X Rule Engine
Stars: ✭ 63 (-75.39%)
Mutual labels:  rule-engine
star
An experimental programming language that's made to be powerful, productive, and predictable
Stars: ✭ 88 (-65.62%)
Mutual labels:  star
NiFi-Rule-engine-processor
Drools processor for Apache NiFi
Stars: ✭ 34 (-86.72%)
Mutual labels:  rule-engine
IoT-Technical-Guide
🐝 IoT Technical Guide --- 从零搭建高性能物联网平台及物联网解决方案和Thingsboard源码分析 ✨ ✨ ✨ (IoT Platform, SaaS, MQTT, CoAP, HTTP, Modbus, OPC, WebSocket, 物模型,Protobuf, PostgreSQL, MongoDB, Spring Security, OAuth2, RuleEngine, Kafka, Docker)
Stars: ✭ 2,565 (+901.95%)
Mutual labels:  rule-engine
ruledesigner
Rule Designer is the Eclipse-based development environment for ODM developers.
Stars: ✭ 14 (-94.53%)
Mutual labels:  rule-engine
react-native-star-prnt
React-Native bridge to communicate with Star Micronics Bluetooth/LAN Printers
Stars: ✭ 61 (-76.17%)
Mutual labels:  star

📌 规则引擎 RuleEngine 📌

License GitHub Stars GitHub Forks GitHub issues Percentage of issues still open

开源不易,请尊重作者劳动成果,作者白天工作,晚上下班与周末维护此项目,如果对你有帮助辛苦给个star,这是对我最大的鼓励。

业务逻辑实现不再依赖于代码开发,可零代码实现复杂业务逻辑。

前端代码地址:https://gitee.com/qwding/rule-engine-front
项目展示地址:http://ruleengine.cn/

联系方式:

关于提出Bug奖励

如果项目在使用过程中,发现项目缺陷或者漏洞等问题,可以在以下地址中提出问题反馈:
Gitee:https://gitee.com/qwding/rule-engine/issues
Github:https://github.com/rule-engine/rule-engine/issues
提出一个问题奖励2元(请大家不要嫌少哦!此项目属于非盈利项目,纯属个人兴趣开源以及开发,我们只想把此项目更加完善!)

提出问题后请联系作者打款。

注意:

  • 每天奖励数量最多10个。
  • 重复问题没有奖励。

技术文档

简单使用:https://blog.csdn.net/weixin_42756198/article/details/109680143
详细文档:http://ruleengine.cn/doc

技术栈/版本介绍:

  • 所涉及的相关的技术有:
    • SpringBoot 2.2.11
    • RabbitMQ
    • Redis、Redisson
    • MySQL 5.7.9
    • Mybatis-plus
    • Maven 3.3
    • Swagger

规则如何调用

通过在 http://ruleengine.cn 配置规则,例如配置的规则如下:

规则配置信息展示
rule-config

配置完成后我们就可以调用接口来执行引擎中的规则了

POST http://ruleserver.cn/ruleEngine/generalRule/execute
Content-Type: application/json

{
      "code": "phoneRuletest",
      "workspaceCode": "default",
      "accessKeyId": "略", 
      "accessKeySecret": "略",
      "param": {
            "phone": "13400000000"
      }
}

现在我们让此使用方式更加简单易用! 调用规则方项目pom.xml文件引入以下依赖

    <dependency>
        <groupId>cn.ruleengine</groupId>
        <artifactId>rule-engine-client</artifactId>
        <version>2.0</version>
    </dependency>

SpringBoot项目application.yml配置文件配置如下:

rule.engine:
  baseUrl: http://ruleserver.cn
  workspaceCode: default
  accessKeyId: root
  accessKeySecret: 123456
  # 可选配置
  feignConfig:
    request:
      connectTimeoutMillis: 3000
      readTimeoutMillis: 3500
    retryer:
      period: 2000
      maxPeriod: 2000
      maxAttempts: 3

然后编写如下代码进行测试:

@EnableRuleEngine
@RunWith(SpringRunner.class)
@SpringBootTest
public class RuleTest {

    @Resource
    private RuleEngineClient ruleEngineClient;

    @Test
    public void test() {
        // 构建规则请求参数
        PhoneTestRule phoneTestRule = new PhoneTestRule();
        phoneTestRule.setPhone("134000000000");
        // 调用执行引擎中的规则
        GeneralRule generalRule = this.ruleEngineClient.generalRule();
        Output output = generalRule.execute(phoneTestRule);
        System.out.println(output);
    }

}

@Data
@Model(code = "phoneRuletest")
public class PhoneTestRule {

    /**
     * ElementField可选,默认code为属性name
     */
    @ElementField(code = "phone")
    private String phone;

}

我们默认使用Feign请求,当然你也可以自定义,只需要在项目中配置如下代码:

@Component
@Import({RestTemplate.class})
public class RuleEngineClientConfig {

    @Resource
    private RestTemplate restTemplate;

    @Bean
    public GeneralRuleInterface generalRuleInterface() {
        return new GeneralRuleInterface() {

            @Override
            public ExecuteResult execute(ExecuteParam executeParam) {
                return restTemplate.postForObject("http://ruleserver.cn/ruleEngine/generalRule/execute", executeParam, ExecuteResult.class);
            }

            @Override
            public IsExistsResult isExists(IsExistsParam existsParam) {
                // TODO: 2020/12/30  
                return null;
            }

            @Override
            public BatchExecuteResult batchExecute(BatchParam batchParam) {
                // TODO: 2020/12/30  
                return null;
            }
        };
    }

}

现在你就已经学会了如何使用,更多使用方式敬请期待!

下一步进展

  • 优化代码,提高配置体验(进行中)
  • 规则版本(开发中)
  • 规则监控(待开发)
  • 评分卡(待开发)
  • 决策树(待开发)
  • 元素组(待开发)
  • 提供规则、规则集、决策表延迟加载功能,以及定时清理长时间未使用的规则、规则集、决策表功能(待开发)

目前忙于工作,功能待完善,欢迎有兴趣伙伴加入我们!

捐助霸王洗发水

作者为了此项目经常熬夜到凌晨才设计完成核心部分以及整体运转,头发掉很多,后来见到了传说中的霸王洗发水,看下自己的口袋,含下买不起的泪水,辛苦捐助一瓶霸王洗发水吧!

支付宝 微信
支付宝 微信

如果觉得本项目对您有任何一点帮助,请点右上角 "Star" 支持一下, 并向您的基友、同事们宣传一下吧,谢谢!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].