Drools Fusion: правило с темпоральным оператором после того, как оно не сработало после обновления до 6.0.0.CR4.

Недавно я интегрировал Drools в свой проект, ориентированный на события. Я использую следующие артефакты maven: kie-internal, kie-api, drools-core, drools-compiler< /сильный>. Все они имели версию 6.0.0.Beta3.

Вот мой код:

try {
KnowledgeBase kbase;
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("rules.drl"), ResourceType.DRL);
if (kbuilder.hasErrors()) {
    System.out.println(kbuilder.getErrors().toString());
}

KieBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
conf.setOption(EventProcessingOption.STREAM);
kbase = KnowledgeBaseFactory.newKnowledgeBase(conf);
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

KieSession ksession = kbase.newKieSession();

ksession.insert(new EventA());
ksession.fireAllRules();

Thread.sleep(8000);
ksession.destroy();
} catch (InterruptedException ex) {
System.err.println(ex.getMessage());
}

правила:

declare EventA
@role( event )
end
declare EventB
@role( event ) 
end

rule "Timeout EventA"
salience 500
when
$a : EventA()
not(EventB(this after[0,4s] $a))
then
System.out.println("Retracting EventA: " + $a);
retract($a);
end

Проблема в том, что после того, как я обновил зависимости drools до версии 6.0.0.CR4 (последняя), правило тайм-аута больше не срабатывает... Может быть, я что-то упустил или это ошибка?


person Vlad    schedule 02.10.2013    source источник


Ответы (1)


Ознакомьтесь с разделом «Управление памятью для событий» в http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html/DroolsComplexEventProcessingChapter.html#d0e10244

Я подозреваю, что предполагаемое смещение истечения срока действия отменяет событие, не запуская правило тайм-аута.

person charybr    schedule 08.04.2014
comment
Спасибо за комментарий. Может быть, конечно. Но я также помню, что я пытался явно определить срок действия обоих событий, и это тоже не сработало. Я прекратил экспериментировать и в настоящее время использую более старую версию 6.0.0.Beta3, которая достаточно стабильна и работает, как и ожидалось, с той же конфигурацией. - person Vlad; 10.04.2014