I have one idea, which convert 1000 rules into 1000 Product facts, insert
these Product facts first. And I can use pool to manager the working memory.
In runtime, I can insert another Consumption fact into working memory.
So I can change 1000 rules into one rule:
rule "product_matching"
when
Consumption ($id : productId)
Product ( id == $id)
then
decision.setPrice($id);
end
Do you think that this is a good way?
Wolfgang Laun-2 wrote:
It's difficult to suggest an optimized form for your rules 1-infinity,
since
we do not know what you want to achieve.
The crude duplication of rules where only the constant to be matched with
Product.id varies can, most likely, be avoided.
-W
On Sun, Jul 19, 2009 at 3:15 PM, nesta <nesta.fdb(a)163.com> wrote:
>
> Hi,
>
> I am a newbie in drools. There are a lot of simple rules in a scenario.
> For example
> rule 1
> when
> Product( id ==1, usage == 1)
> $decision : Decision()
> then
> $decision.setValue(1);
> end
>
> rule 2
> when Product( id ==2, usage == 1)
> $decision : Decision()
> rule 3
> when Product( id ==3, usage == 1)
> $decision : Decision()
> rule 4
> when Product( id ==4, usage == 1)
> $decision : Decision()
> rule 5
> when Product( id ==5, usage == 1)
> $decision : Decision()
> ......
>
> I have a Product fact whose id = 5 and usage = 1, in my first thinking,
> only
> rule 5 is matched, there should be not much more different between 1 rule
> and a lot of rules in runtime.
>
> But the result shows that they are different. More rules will cost more
> time. If there are 1 thousand rules, some Node and Sink will execute 1
> thousand times.
>
> My question is how to optimize this scenario?
> --
> View this message in context:
>
http://www.nabble.com/optimization-on-a-lot-of-simple-rules-tp24556724p24...
> Sent from the drools - user mailing list archive at
Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users