欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

drools动态规则和动态定时器解决方案

程序员文章站 2022-03-03 15:51:30
...

dynamicDrools

动态配置drools规则引擎和定时器,本文只提供了一个解决思路,后续会从项目中把代码摘取出来
##动态规则
思路如下:
MQ数据-》从数据库中获取rule->执行规则->满足条件->执行操作
##定时器
思路如下:
由于drools自带的定时器太过于鸡肋,无法控制定时器的开启,关闭,在执行过程中无法修改when 条件数据。

  所以我们可以考虑引入任务调用框架quartz,注:在微服务中,可能需要注意,quartz的重复执行问题。而分布式任务调度平台
  
  xxl-job也可以实现此功能,但是当我们想动态获取规则和规则对应cron表达式时,貌似xxl-job满足提供的bean模式,class/method满足不了我们的需求,
  
  所以本人使用quartz解决了这个问题。
  
  新建规则->开启规则状态->存储规则到quartz中->启动quartz对应的任务
  
  quartz 规则引擎定时器任务执行过程
  
  quzrtz启动任务 ->执行任务->获取任务信息(数据库中存储了对应的规则id)->获取规则->执行规则
  
  其实这个地方,就是把规则引擎的定时器功能转移到了quartz来管理->然后去执行drools.
  
  [email protected]
  需要帮助可以致邮