规则引擎 Drools(七):运行时组件 Channel

Channel 提供了一个更佳的方式,可以从会话内部向外部环境传递信息。

KieSession 提供了方法注册和注销 Channel:

  • void registerChannel(String name, Channel channel)
  • void unregisterChannel(String name)

实例

DRL:

rule "test"  
    when
    then
        channels['hello'].send("World");
end  

Java 代码:

ksession.registerChannel("hello", new Channel() {  
    public void send(Object object) {
        System.out.println("Hello " + object + "!");
    }
});
ksession.fireAllRules();