我是埃斯珀的新手。我需要帮助来维护EPL流程。我有一个java类EsperTest.java,该类每 10 秒将数据发送到EPL进行计算。
在EPL 中,我有 4 个压缩级别。例如压缩A、压缩B、压缩C、压缩D。在每次压缩中,我们都基于一些字段进行分组。
完成CompressionA的计算后,我们提出了一个事件,即“ CompressionACompleted ”。在 ' CompressionACompleted ' 的基础上,我们开始计算CompressionB。在CompressionB的计算完成后,我们提出了一个事件,即“ CompressionBCompleted ”。在' CompressionBCompleted '的基础上,我们开始计算CompressionC等等。
现在的问题是我有一个包含 100 个值的列表。java 类 ( EsperTest.java ) 将值一一发送给 Esper。因此,所有压缩都是针对列表中的每个值计算的。
现在,我希望 1 次压缩应该为所有 100 次更改计算一次。即,当向EPL发送100 个值时, CompressionA应计算所有 100 个值 1 次,然后 CompressionB 应在CompressionA完成后开始更新并更新整个窗口。然后 CompressionC 应该在 B 完成计算后开始更新。
我们当前的流程正在导致高CPU 使用率或高内存消耗,好像更改的值数会增加计算时间并增加复杂性。请帮助我在我的应用程序中更改EPL 的结构。