Выполняет сеанс с отслеживанием состояния на запрос

Мы пытаемся использовать Drool в качестве службы механизма правил. То, что мы делали до сих пор, перечислено ниже

Большинство наших требований удовлетворяет сеанс без сохранения состояния (предоставить набор данных, выполнить правило и вернуть данные, вот и все). Но при использовании без сохранения состояния мы должны поставить под угрозу многие важные функции, предоставляемые сеансом с отслеживанием состояния Drools.

Итак, мы пытаемся использовать сеанс с отслеживанием состояния для каждого запроса. Это означает, что сеанс должен быть удален, как только закончится запрос. Кроме того, параллельные запросы не должны мешать друг другу, даже если имя сеанса совпадает.

Мы узнали о конфигурации стратегии выполнения контейнера (Workbench> Deploy> {any container}> Process Configuration> Runtime strategy)

введите здесь описание изображения

Но даже после настройки стратегии контейнера на По запросу он по-прежнему ведет себя так же, как синглтон (сеанс не удаляется после каждого запроса).

Немногие места, где мы читаем, стратегия времени выполнения реализована только в jBPM

То, как мы делаем запрос к KIE-серверу, показано ниже.

 Request: POST {HOST}/kie-server/services/rest/server/containers/instances/TestRequest_1.0.4 
 {
   "lookup": "ab-session", //stateful session
   "commands": [
     {
       "insert": {
         "out-identifier": "125",
         "object": {
           "com.myteam.testrequest.Product": {
            "id": "123",
            "name": "Hoo Hoo",
            "count": 0
           }
         },
         "return-object": "true"
       }
     },
     {
       "insert": {
         "out-identifier": "126",
         "object": {
           "com.myteam.testrequest.Product": {
            "id": "123",
            "name": "Hoo Hoo",
            "count": 0
           }
         },
         "return-object": "true"
       }
     },
     {"fire-all-rules": "hf2"}
   ]
  }

Нам нужна помощь в выполнении этого требования. Кроме того, помогите понять, сделали ли мы что-то не так


person Vishal Vijay    schedule 08.12.2017    source источник
comment
Где ты сможешь это решить?   -  person Michael Kalika    schedule 28.01.2018
comment
Кое-что из нашего понимания было неверным. Сеанс без сохранения состояния в слюнях фактически является реализацией сеанса с отслеживанием состояния для каждого запроса. Это означает, что все команды, поддерживаемые в stateful, также поддерживаются в stateless. (Мы изначально думали, что modify подобные команды не поддерживаются в сеансе без сохранения состояния). Если вы хотите получить ответ для стратегии по запросу, это доступно только в jBPM   -  person Vishal Vijay    schedule 29.01.2018


Ответы (1)


В kmodule.xml вы можете попытаться добавить область «прототип», потому что по умолчанию это «singleton»:

<ksession name="SessionName" type="stateful" default="false" clockType="realtime" scope="prototype"/>
person Almas Kamitov    schedule 06.09.2019