jeasy

Java规则引擎 Easy Rules

大城市里の小女人 提交于 2020-08-15 14:20:30
1. Easy Rules 概述 Easy Rules是一个Java规则引擎,灵感来自一篇名为《 Should I use a Rules Engine? 》的文章 规则引擎就是提供一种可选的计算模型。与通常的命令式模型(由带有条件和循环的命令依次组成)不同,规则引擎基于生产规则系统。这是一组生产规则,每条规则都有一个条件(condition)和一个动作(action)———— 简单地说,可以将其看作是一组if-then语句。 精妙之处在于规则可以按任何顺序编写,引擎会决定何时使用对顺序有意义的任何方式来计算它们。考虑它的一个好方法是系统运行所有规则,选择条件成立的规则,然后执行相应的操作。这样做的好处是,很多问题都很自然地符合这个模型: if car.owner.hasCellPhone then premium += 100 ; if car.model.theftRating > 4 then premium += 200 ; if car.owner.livesInDodgyArea && car.model.theftRating > 2 then premium += 300; 规则引擎是一种工具,它使得这种计算模型编程变得更容易。它可能是一个完整的开发环境,或者一个可以在传统平台上工作的框架。生产规则计算模型最适合仅解决一部分计算问题

easy-batch job listeners

旧城冷巷雨未停 提交于 2020-04-21 03:26:27
easy-batch 的listeners给与我们提供了一个系统状态的一个日志监控点,同时 基于不同的类型提供了不通的监控 Job listener job 关联的 需要实现的方法签名 public interface JobListener { ​ void beforeJobStart( JobParameters parameters); ​ void afterJobEnd( JobReport report); ​ } 参考图 注册方法 Job job = new JobBuilder() . jobListener( new MyJobListener()) . build(); 一些场景 设置以及请求梨园(before / after job) 锁(解锁)工作目录(start / stop job) Archive log files at the end of Job 日志文件归档(job 结束) execution 执行完备发送邮件 。。。。 Record reader/writer listeners 方法签名 public interface RecordReaderListener { ​ void beforeRecordReading(); ​ void afterRecordReading( Record record); ​ void

easy-batch相关qa

送分小仙女□ 提交于 2020-04-21 03:24:58
easy-batch相关qa,还是很不错的资料 包括了数据读取的原理,数据写入的原理,数据校验,与spring batch 的比较,基于easy-batch的复杂处理方法(easy-flows) 参考链接: https://github.com/j-easy/easy-batch/wiki/faqs https://github.com/j-easy/easy-flows 来源: oschina 链接: https://my.oschina.net/u/4386188/blog/3283197

easy-flows 一个简单的工作流引擎

牧云@^-^@ 提交于 2020-04-21 02:32:07
easy-flows 一个简单的工作流引擎,我们可以他提供的api可以实现一些复杂的业务流处理 参考图 说明 easy-flows 并没有实现bpmn规范,我们基于easy-flows基本可以实现一些复杂 short running 业务规则的 处理 参考资料 https://github.com/j-easy/easy-flows 来源: oschina 链接: https://my.oschina.net/u/4322161/blog/3276080

easy-batch job 调度

纵饮孤独 提交于 2020-04-20 10:16:16
使用ScheduledExecutorService调度 因为job实现了 java.util.concurrent.Callable 所以可以基于ScheduledExecutorService进行调度 参考代码 Job job = ..; ScheduledExecutorService scheduledExecutorService = Executors. newScheduledThreadPool( 5); ScheduledFuture scheduledFuture = scheduledExecutorService. schedule( job, 5, TimeUnit. SECONDS); 使用Quartz 包含了一个 easybatch-quartz 模块,但是不好的是6.0移除了,但是依然可以学习使用 我们可以通过EasyBatchJob&&EasyBatchJobFactory 方便的集成Quartz 参考资料 https://github.com/j-easy/easy-batch/wiki/job-scheduling https://github.com/j-easy/easy-batch/blob/master/easy-batch-tutorials/src/main/java/org/jeasy/batch/tutorials

easy-batch job 监控

时光怂恿深爱的人放手 提交于 2020-04-20 10:15:28
easy-batch 可以通过jmx 监控job 的运行状态(我们可以通过jmxexporter&&jmxtrans增强) 允许的jmx 指标 jmx mbean 名称为 org.jeasy.batch.jmx.monitor:name=YourJobName 暴露的指标 job启动以及结束的时间 job的状态 读取的record 写入的record 过滤的record 错误数 编程方式控制 Job job = new JobBuilder() . enableJmx( true) . build(); 监听jmx通知 当启用jmx之后,会发送通知,当然我们需要一些配置 指定jmx端口 可以通过 com.sun.management.jmxremote.port 参数配置 创建通知处理 使用包含了JobMonitoringListener的JobMonitorProxy 处理通知 参考资料 https://github.com/j-easy/easy-batch/wiki/job-monitoring https://github.com/j-easy/easy-batch/tree/master/easy-batch-tutorials/src/main/java/org/jeasy/batch/tutorials/advanced/jmx 来源: oschina 链接:

easy-batch job 配置

…衆ロ難τιáo~ 提交于 2020-04-20 07:44:06
创建一个batch job 我们可以通过JobBuilder创建job 默认job 的名称为job 参考 Job job = new JobBuilder() . named( "myJob") . build(); ​ // Or ​ Job job = JobBuilder. aNewJob() . named( "myJob") . build(); 运行job 同步模式 //Either by calling the job directly JobReport jobReport = job. call(); ​ // Or using the org.easybatch.core.job.JobExecutor API JobExecutor jobExecutor = new JobExecutor(); JobReport jobReport = jobExecutor. execute( job); ​ // Or using a java.util.concurrent.ExecutorService ExecutorService executorService = ..; JobReport jobReport = executorService. submit( job). get(); 异步模式 // Using the org.easybatch

easy-rules spring boot 一个简单的starter

一笑奈何 提交于 2020-04-17 13:14:08
【推荐阅读】微服务还能火多久?>>> 以下是一个简单的包装的一个easy-rules spring boot starter,以及使用说明 easy-rules spring boot starter 项目 说明 就是一个简单的spring boot starter,包装了easy rules 同时基于配置文件进行rule 的加载,注意此版本使用了4.0 de snapshot (使用了beanresolver),当前版本只处理了基于本地文件的加载模式,以及对于spel expression 的支持(因为可以更好的集成 spring) pom.xml <? xml version = "1.0" encoding = "UTF-8" ?> < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0.0 < /modelVersion> ​ < groupId > com.