Я вставляю данные в механизм управления слюнами, но я не могу понять, как он обрабатывал вставленные данные. Код для вставки данных:Drools rule engine flow
final StatefulKnowledgeSession session = getSession()
new Thread() {
@Override public void run() {
Thread.currentThread().setName("RuleEngineThread")
println 'engine starting fire'+Thread.currentThread().getName()
session.fireUntilHalt();
}
}.start();
WorkingMemoryEntryPoint entrypoint=session.getWorkingMemoryEntryPoint("Multiple Stream")
entrypoint.insert(new Categories([categoryid:120,name:"catN1"]))
entrypoint.insert(new Test(100,120))
entrypoint.insert(new Categories([categoryid:121,name:"catN2"]))
entrypoint.insert(new Test(100,121))
entrypoint.insert(new Categories([categoryid:1220,name:"catN3"]))
entrypoint.insert(new Test(100,1220))
entrypoint.insert(new Categories([categoryid:1202,name:"catN4"]))
entrypoint.insert(new Test(100,1202))
println "Thread sleeeping for 3 secs"
Thread.currentThread().sleep(3000)
не беспокойтесь о синтаксисе, это отличный файл. И правило существо:
rule "multiple-opt"
//duration 120
no-loop true
when
$c: Categories() from entry-point "Multiple Stream"
$t: Test() from entry-point "Multiple Stream"
then
System.out.println("@@Multiple "+$c.getName()+":"+$t.getPrice());
end
Выход я получаю довольно странно, так что я думаю, что я меньше понимания Drools выполнения. Выход:
engine starting fireRuleEngineThread
Thread sleeeping for 3 secs
@@Multiple catN1:100
@@Multiple catN4:100
@@Multiple catN3:100
@@Multiple catN2:100
@@Multiple catN1:100
@@Multiple catN4:100
@@Multiple catN3:100
@@Multiple catN2:100
@@Multiple catN1:100
@@Multiple catN3:100
@@Multiple catN2:100
@@Multiple catN1:100
@@Multiple catN2:100
Я не могу понять, как правило, было уволено так много раз, в то время как я вставленные объекты меньше раз, чем количество выходов, которые я получаю.
Пожалуйста, помогите, если я не знаю некоторые сведения о drools.Thanks заранее
Если да, то должны быть дополнительные ограничения (categoryid?), Чтобы гарантировать, что правильные пары будут сопоставлены и убраны. – laune