Использование epls для вычислений с несколькими зависимыми уровнями

Я новичок в Эспере. Мне нужна помощь в поддержании потока EPL. У меня есть класс java EsperTest.java, этот класс отправляет данные в EPL для расчета каждые 10 секунд.

В EPL у меня есть 4 уровня Compression. Например. СжатиеA, СжатиеB, СжатиеC, СжатиеD. В каждом сжатии мы выполняем группировку на основе некоторых полей.

После того, как расчет для CompressionA был завершен, мы вызвали событие, т. е. «CompressionACompleted». На основе «CompressionACompleted» мы начинаем вычисление CompressionB. И после того, как расчет для CompressionB был завершен, мы вызвали событие, т. е. «CompressionBCompleted». На основе «CompressionBCompleted» мы начинаем вычисление CompressionC и так далее.

Теперь проблема в том, что у меня есть список, содержащий 100 значений. Класс Java (EsperTest.java) отправляет значения в Esper одно за другим. И так все сжатия рассчитываются для каждого значения в списке.

Теперь я хочу, чтобы 1 сжатие вычисляло одно для всех 100 изменений. т. е. когда 100 значений отправляются в EPL, тогда CompressionA должен вычислить для всех 100 значений 1 раз, затем CompressionB должен начать обновление после завершения CompressionA и обновление для всего окна. Затем CompressionC должен начать обновление, как только B завершит расчет.

Наш текущий поток приводит к высокой загрузке ЦП или высокому потреблению памяти, как будто измененное число значений увеличивает время вычисления и увеличивает сложность. Пожалуйста, помогите мне изменить структуру EPL в моем приложении.


person Ankit Jain    schedule 22.03.2017    source источник


Ответы (1)


Ответ на этот вопрос был задан в списке рассылки Esper.

person user3613754    schedule 22.03.2017