我想知道是否有人可以指出我正确的方向来帮助我设计一个高级算法来解决下面解释的问题,使用Drools。
让我们考虑一个计费系统,在这个系统中,对于给定月份和给定服务,我可以从数据库中获取数百万条记录,例如呼叫详细记录(CDR),即具有客户端ID和我想要的许多其他字段用来在规则中推理。问题是,我不仅需要根据个人记录采取行动,还需要根据适用于某些聚合的条件。例如,假设在达到某个阈值数量后(即,500日之后的每个CDR更便宜),将对所有CDR应用不同的价格。实际上,规则要复杂得多。
现在,我很确定这个想法不是将所有这些记录一起插入引擎(KieSession),然后解除所有规则。因此,我需要一些Object,我们称之为“会计元素”,我可以从中收集每个已处理记录的所有信息。在这种情况下,我会这样做:
for each CDR loop:
Insert a record;
Fire all the rules;
Delete the record;
在Drools的规则中,我需要更新我的会计对象,例如计算为每个客户/服务处理的记录数。
此外,由于我也将根据这个会计对象做出决定,它也必须插入KieSession,并在整个会话期间保留在那里,对吗?
我很感激你可以给我提出任何关于使用Drools解决这个问题的可能解决方案/实现方法的建议,请告诉我,如果不是,我说的话是否有意义或纠正我。谢谢!
答案 0 :(得分:0)
你的问题并不多,所以没有太多可能是错的。
只有几点评论: