2016-12-02 1 views

Répondre

1

Oui, vous pouvez créer le fichier de règles en fonction de l'utilisateur. J'ai aussi fait quelques R & D sur cette génération de règles basée sur l'utilisateur, dans mon scénario, j'ai créé le fichier de règles comme id_périphérique, chaque fois que je reçois le paquet avec cet utilisateur, je charge le fichier de règles avec ce nom dans le boulon.

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); 

Dans mon scénario, deviceId est le nom du fichier de règles de ce dispositif

haricot - est votre bean java

+0

oui je suis idée, mais ma question est il n'y a ID de l'appareil où dois-je appeler le fichier de règles dans Storm dans le bec, le verrou ou la topologie? –

+0

Pas de bec, il y a deux façons est là: 1. vous pouvez charger le drl dans le constructeur de boulon 2.Vous pouvez charger dans la classe de boulon comme je l'ai mentionné ci-dessus. – Mahabaleshwar

+0

merci beaucoup monsieur pour donner réponse maintenant j'ai eu idée, je le ferai. –