Мы создаем приложение Storm, там нам нужно создать файл правил для каждого пользователя. Возможно или нет?Как создать файл правил Drools для каждого пользователя с помощью Apache Storm?
2
A
ответ
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 это имя правила файла этого устройства
боб - это ваш Java Bean
да я получил идею, но мой вопрос не нет device id.where Мне нужно вызвать файл правил в Storm в spout, болт или топологию? –
Не имеется носик, есть два способа: 1. вы можете загрузить drl в конструкторе болтов 2. Вы можете загрузить в класс болтов, как я упомянул выше. – Mahabaleshwar
благодарит много сэр за ответ, теперь у меня есть идея, я сделаю это. –