【问题标题】:How to create Drools rule file for each user using Apache Storm?如何使用 Apache Storm 为每个用户创建 Drools 规则文件?
【发布时间】:2016-12-02 11:48:42
【问题描述】:

我们正在制作Storm应用程序,我们需要为每个用户创建规则文件。是否可能?

【问题讨论】:

    标签: java drools apache-storm drools-guvnor drools-fusion


    【解决方案1】:

    是的,您可以根据用户创建规则文件。

    我还对这个基于用户的规则生成进行了一些研发,在我的场景中,我创建了与 device_id 相同的规则文件,每当我收到该用户的数据包时,我都会在螺栓中加载具有该名称的规则文件.

    螺栓:

    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
                    try {
                        kbuilder.add(ResourceFactory.newInputStreamResource(new FileInputStream(new File("C:/IotHub/conf/"+deviceID))), ResourceType.DRL );
                    } catch (FileNotFoundException e) {
                    }
                    KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
                    kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
                   // 
                   StatelessKnowledgeSession  ksession = kbase.newStatelessKnowledgeSession();
    
                    ksession.execute(bean);
    

    在我的场景中,deviceId 是该设备的规则文件名

    bean - 是你的 java bean

    【讨论】:

    • 是的,我知道了,但我的问题是没有设备 ID。我需要在哪里调用 Storm 中的 spout、bolt 或拓扑中的规则文件?
    • 不是spout,有两种方法:1.你可以在bolt构造函数中加载drl 2.你可以像我上面提到的那样在bolt类中加载。
    • 非常感谢先生的回复,我知道了,我会做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2022-11-30
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多