2015-10-23 4 views
2

Как загрузить файл drl во время выполнения? Я прочитал документацию Drools, и я знаю, что следует использовать KieScanner scanner правило jar. У меня есть несколько вопросов:Drools 6.3.0.Final правила загрузки динамические

  1. Когда я обновляю свой drl файл и сделать новый jar, как я уведомляю проект?

    При использовании KieScanner, «ReleaseId» жестко закодированы в проекте:

    KieServices kieServices = KieServices.Factory.get(); 
    ReleaseId releaseId = kieServices.newReleaseId("org.acme", "myartifact", "1.0-SNAPSHOT"); 
    KieContainer kContainer = kieServices.newKieContainer(releaseId); 
    // Start the KieScanner polling the Maven repository every 10 seconds 
    kScanner.start(10000L); 
    
  2. KieScanner позволяет непрерывный мониторинг Maven хранилище, чтобы проверить, был ли установлен новый выпуск проекта Кие. Если я запускаю проект на сервере Linux, мне нужно установить Maven?

ответ

0

Java 1.7 имеет java.nio.file.WatchService и несколько связанных типов. Используя их, чтобы некоторые приложения знали об изменении файловой системы, это почти такая же работа, как настройка KieScanner, и вам не нужны все эти накладные расходы.

Планирование динамического переключения на новую базу правил - конечно же, не вырезанное и высушенное вещество - требует пристального внимания и вызывает несколько вопросов. Простое добавление или замена правил в текущем сеансе невозможно. Итак, вы создаете новый сеанс, и что тогда? Если вам повезло, на ваших сеансах есть моменты, когда все динамические факты исчезнут, и вы можете безопасно переключиться на новый сеанс и перенаправить ввод и вывод. Наконец, пользователи должны быть проинформированы о новых правилах ...

Любой автоматизированный механизм не поможет много, и ИМХО, желательно иметь полный контроль над всеми шагами в любом случае.