大神快来,出大事啦

超级小小白 2017-12-21 03:35:00
最近接触一个贷款审核系统的WEB项目,其中审核条件的时候有40条规则,需要把个人信息从这40多条规则中一一比对看是否符合该规则,做加减分的操作,但是感觉到如果这样做的话,当规则增加运行效率会更慢,所以有没有什么好的办法,比如用二叉树这种,把规则分支,减少判断的次数,但是这个分支规则没有接触过,求这种技术有没有什么框架或者插件之类的,在这里也征集一下各位大神还有没有其他的好的办法,就是规则比对效率能提高!!!!!!
...全文
1032 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
programApeCrj 2017-12-30
  • 打赏
  • 举报
回复
责任链模式?
幽饮烛 2017-12-27
  • 打赏
  • 举报
回复
既然所有规则都需要符合,那么自己写循环是最快的。
whhmkj 2017-12-26
  • 打赏
  • 举报
回复
你应该先看业务需求规则是怎么定义的 如果是渐进规则就可以像办法 如果是对等规则那就难了
土豆的老公 2017-12-26
  • 打赏
  • 举报
回复
你应该考虑的是,规则变了,而不修改或者尽量少的修改代码。
小灰狼 2017-12-25
  • 打赏
  • 举报
回复
40条规则不算多 只要这些逻辑判断所需要的数据能够一次性读到内存里,或者缓存在内存的 Map/Set 之类的数据结构里,再对处理逻辑之类的程序进行优化,减少不必要的循环,应用40条规则应该不会花太多时间 另外,就算一个审批要占用CPU 100毫秒又怎么样,对人来说就是一瞬间的事,而对服务器而言,它可以干好多好多好多事了 楼主可以写个程序自己模拟一下
qq_37971853 2017-12-24
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/392301405 求大神帮我解决问题
  • 打赏
  • 举报
回复
drools
  • 打赏
  • 举报
回复
doorls 规则引擎
超级小小白 2017-12-22
  • 打赏
  • 举报
回复
引用 10 楼 oliver_105397 的回复:
引用 7 楼 qq_41190848 的回复:
[quote=引用 6 楼 dxbj1016 的回复:] 如果这些规则没有优先级的话 你可以用多线程来处理的。
多线程处理的时候,效率如何,我是个小白,还在实习期
把规则分开几块,多个线程同时并行检验操作[/quote]这个我可以试试,谢谢
超级小小白 2017-12-22
  • 打赏
  • 举报
回复
引用 9 楼 u013601194 的回复:
引用 8 楼 qq_41190848 的回复:
引用 5 楼 u013601194 的回复:
建议参考Servlet的Filter流程来做
目前思路是把这些规则循环比对,但是考虑到如果规则增加到100的话,循环100次,效率太低啦,这个filter可行性有多高,我是小白,还在实习期
不管多线程还是单线程,你都要运行这些规则,除非你这些规则之间有依赖关系,一个Filter一个类,形成一条FilterChain,上一个Filter处理之后流转到下一个继续处理,最后一个Filter作为输出,不要怕循环多,100个也不多啊,只要Filter里面没有太多占内存的代码肯定可以支撑
我大概看了一下filter还是不懂该怎么做,filter是客户端和服务器端的一个传递者,起到过滤的作用,而现在需要做的就是把数据库里面的一行个人信息,比如年龄,收入什么的很多信息跟数据库其他表的几十种规则进行比对,完全都是在后台进行操作的,不懂用filter该如何实现
今夜明珠色 2017-12-22
  • 打赏
  • 举报
回复
引用 13 楼 hp961218 的回复:
关注点难道不应该是贷款审核项目吗,这年头居然还有公司敢接贷款项目来做....
这怎么说
hp961218 2017-12-22
  • 打赏
  • 举报
回复
关注点难道不应该是贷款审核项目吗,这年头居然还有公司敢接贷款项目来做....
ooo-ooo 2017-12-21
  • 打赏
  • 举报
回复
引用 7 楼 qq_41190848 的回复:
引用 6 楼 dxbj1016 的回复:
如果这些规则没有优先级的话 你可以用多线程来处理的。
多线程处理的时候,效率如何,我是个小白,还在实习期
把规则分开几块,多个线程同时并行检验操作
Jason_He_199 2017-12-21
  • 打赏
  • 举报
回复
引用 8 楼 qq_41190848 的回复:
引用 5 楼 u013601194 的回复:
建议参考Servlet的Filter流程来做
目前思路是把这些规则循环比对,但是考虑到如果规则增加到100的话,循环100次,效率太低啦,这个filter可行性有多高,我是小白,还在实习期
不管多线程还是单线程,你都要运行这些规则,除非你这些规则之间有依赖关系,一个Filter一个类,形成一条FilterChain,上一个Filter处理之后流转到下一个继续处理,最后一个Filter作为输出,不要怕循环多,100个也不多啊,只要Filter里面没有太多占内存的代码肯定可以支撑
超级小小白 2017-12-21
  • 打赏
  • 举报
回复
引用 5 楼 u013601194 的回复:
建议参考Servlet的Filter流程来做
目前思路是把这些规则循环比对,但是考虑到如果规则增加到100的话,循环100次,效率太低啦,这个filter可行性有多高,我是小白,还在实习期
超级小小白 2017-12-21
  • 打赏
  • 举报
回复
引用 6 楼 dxbj1016 的回复:
如果这些规则没有优先级的话 你可以用多线程来处理的。
多线程处理的时候,效率如何,我是个小白,还在实习期
dxbj1016 2017-12-21
  • 打赏
  • 举报
回复
如果这些规则没有优先级的话 你可以用多线程来处理的。
Jason_He_199 2017-12-21
  • 打赏
  • 举报
回复
建议参考Servlet的Filter流程来做
超级小小白 2017-12-21
  • 打赏
  • 举报
回复
求救啊,大神都浅潜水去了吗
超级小小白 2017-12-21
  • 打赏
  • 举报
回复
关键是没有思路,不知道 该哪种思路做
加载更多回复(2)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧