如何使用Apache Storm为每个用户创建Drools规则文件?

时间:2016-12-02 11:48:43

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

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

1 个答案:

答案 0 :(得分:1)

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

我还在这个基于用户的规则生成上做了一些R& D,在我的场景中,我已经创建了与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