我工作的一个事务性系统处理来自多个外部系统的data-gathering,并根据(事务性实体+收集的数据)做出一些业务决策。
目前,我们采取以下步骤:
,上述方法的一个主要缺点是,我必须事先收集所有数据(昂贵的网络呼叫),而不必担心数据的有用性。
我试图通过将服务调用移动到规则执行层来延迟服务调用。这样做的目的是利用drools决策树来避免进行服务调用,如果我能够对一些已经可用的数据(在事务实体本身内)做出决定的话。
只想验证思想过程(也就是说,将服务调用作为规则执行的一部分将是一个很好的实践。)
有谁能分享一下大致相同的利弊吗?如有任何线索,将不胜感激。
发布于 2016-11-10 23:01:10
你不能用你还没有的事实来推理。如果你的事实让你决定你还需要什么,你可以根据下面的小例子写规则。
rule "x and y, not z"
when
Dimension( $id: id, coord == "x" )
Dimension( id == $id, coord == "y" )
not Dimension( id == $id, coord == "z" )
then
fetch and insert missing Dimension
end
rule "x, y and z" ... end请注意,不能同步执行此获取和插入过程。您可以将请求作为事件队列插入--使用Java中的任何内容。
https://stackoverflow.com/questions/40527966
复制相似问题