java - random start in drools -


currently drl file looks 100+ rules.

rule "check 0" when    ..... .......... end   rule "check 1" when    ..... .......... end  rule "check 2" when    ..... .......... end  . . . .  rule "check 100" when    ..... .......... end 

and have set sessionobject.fireallrules(1);

so iterate through rules rule 'check 0' rule 'check 100' , returns when ever falls under rule.

is way can start @ random rule instead of starting rule 'check 0' every time.

i looking this.

start rule 'check 34' iterate till rule 'check 100' , iterate rule 'check 0' rule 'check 33'.

the idea of testing condition , executing action if true old computers. likewise, concept of ordering actions old. both have been implemented in various versions of known "procedural programming".

the requirements describe meet, , met by, "procedural programming" head-on.

of course, drools can made behave procedural program. so, answer question: yes it's possible, using salience.

rule "to  fired first" salience 999999999 when ... ... end 

simply use decreasing values, , defines order.

edit idea of randomizing rule firing isn't in rule-based-programming paradigm either. can mimick (why don't use procedural programming??) deriving salience fact attribute.

create 100 objects of class ranking fields int order , int rank. insert them order set 1..100 , rank random permutation of 1..100.

rule "number 49" salience $rank when     ranking( order == 49, $rank: rank )     ... ... end 

for next run, use permutation. rule lucky catch ranking rank==100 fire first.


Comments

Popular posts from this blog

java - Date formats difference between yyyy-MM-dd'T'HH:mm:ss and yyyy-MM-dd'T'HH:mm:ssXXX -

c# - Get rid of xmlns attribute when adding node to existing xml -