Vincent Legendre wrote
Users changing rules IS the correct use-case of drools (I would even say
that if rules never change, drools is likely to be worse than pure java).
What others said is "changing the rules at each request by regenerating
and recompiling" is not.
I can't imagine that users may change rules at each request, so you must
have, at least for some time (thus a lot of requests), a stable rule base.
What is costly is to compile rules, but you already know that.
So the idea is to keep in some kind of cache the actual rules, and only
recompile them when they change.
The source of rules does not matter : you can generate the DRL according
to your configuration, or make you users directly write rules (with
guvnor, which will fits well if your rules are only basic filters).
The optimisation you have to do is to keep your compiled rules somewhere
(by serializing your KnowlegdePackages or simply keep it in a kind of
map), and reuse it until your source change : you have to find a way to
detect that rules (or the config that is used to generate them) have
changed, and then recompile a new up-to-date KnowledgePackage.
Thank you for your insights.
At this point I'm designing for the worst case i.e., I'm assuming the rules
with change with every request.
Moreover, this can happen on a regular basis in the system I'm trying to
design.
Product
{
price
ave_user_rating
num_ratings
category
}
User wants to see Product with with the following rules
at t=t_1 : If product.category in {A,B}.
at t=t_2 : If product.category in {A,B} AND price < 100
at t=t_3 : If product.category in {A,B} AND price < 100 AND num_ratings >
100
You can imagine the user changing these rules in a span of less than a
minute.
I understand that Drools is designed for cases when rules changes often. But
can it support something like the one I described above where rules are
changing at a much faster rate?
Thanks.
--
View this message in context:
http://drools.46999.n3.nabble.com/Is-there-a-faster-way-of-doing-this-in-...
Sent from the Drools: User forum mailing list archive at
Nabble.com.