Можем ли мы реализовать правило дискретного окна в Drools?

У меня есть требование внедрить правило дискретного окна в мой механизм правил. Мое требование состоит в том, чтобы собрать 10 м (время) данных, а затем выполнить какое-либо действие с собранными данными. Помогите мне с любым подходом. Поддерживают ли Drools дискретное управление окнами?

Заранее спасибо.


person Prog_G    schedule 23.01.2019    source источник


Ответы (1)


Короткий ответ: Нет. Как бы странно это ни звучало, Drools не поддерживает такие окна из коробки. Каждый раз, когда мне приходится использовать дискретное окно, я в конечном итоге создаю свои собственные правила для создания, заполнения и обработки того, что я называю «сегментами» (дискретное окно).

person Esteban Aliverti    schedule 23.01.2019
comment
можем ли мы разделить значения в правилах Drool? Допустим, я хочу, чтобы данные о событиях за 10 минут были помещены в корзину, а затем выполнялись какие-то действия с этими данными. - person Prog_G; 23.01.2019
comment
да, но вы не можете использовать скользящее окно для этого (или, по крайней мере, в этом нет необходимости). Вам нужно будет отслеживать время самостоятельно, возможно, используя таймер в одном из ваших правил. - person Esteban Aliverti; 23.01.2019
comment
Таймер поможет выполнить правило на основе времени, которое мы установили для таймера, но как я буду собирать данные? Вы говорите, что я должен разбивать данные вручную, как отдельное правило для разбивки данных? - person Prog_G; 24.01.2019
comment
Правильный. Вам понадобятся некоторые правила, такие как: Создать новую корзину, если ни одна из них не открыта, Добавить элемент в корзину, Закрыть корзину. Я не говорю, что реализация будет тривиальной. - person Esteban Aliverti; 24.01.2019
comment
Я хочу понять это больше. Насколько я понимаю, вы говорите создать новое правило для группировки данных, и это правило будет только группировать данные и сохранять их в глобальной переменной. Это то, что вы говорите? Пример того, что вы говорите, поможет мне все понять. Можете ли вы привести пример? - person Prog_G; 24.01.2019