如何使用apachestorm为每个用户创建drools规则文件?

ivqmmu1c  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(295)

我们正在制作storm应用程序,在那里我们需要为每个用户创建规则文件。这是可能的还是不可能的?

kt06eoxx

kt06eoxx1#

是的,您可以基于用户创建规则文件。
我还对基于用户的规则生成做了一些研究和开发,在我的场景中,我创建了与device\u id相同的规则文件,每当我与该用户一起获取数据包时,我都会在bolt中加载具有该名称的规则文件。
螺栓:

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是你的javabean吗

相关问题