如何为WSO2CEP 3.0.0编写自定义输出属性聚合函数

时间:2013-12-13 13:39:16

标签: wso2

通过关注Writing a Custom Output Attribute Aggregator上的文档,我们无法决定如何实现processAddprocessRemove这些功能。有人可以帮我理解这些功能的职责是什么吗?

此外,尽管已实现,但在提供的示例中未使用newInstance函数。这个功能的目的是什么?

1 个答案:

答案 0 :(得分:1)

分别从查询处理器状态添加和删除事件时,将调用

processAddprocessRemove。当从查询处理器状态中删除事件时,Siddhi引擎将事件包装在实现org.wso2.siddhi.core.event.remove.RemoveStream的类中。同样,org.wso2.siddhi.core.event.in.InStream的实现可用于识别新事件。

基于此,您可以识别是否正在为保持状态的查询添加/删除事件(如在窗口,序列,模式等中)。以这种方式调用方法允许您以最小的性能影响进行最佳计算(例如,在计算平均值时,您可以添加到已经可用的总数并除以不迭代需要考虑的整个事件列表)。

您可以在Siddhi代码库中查看AvgOutputAttributeAggregatorDouble类或类似类的代码,以便更好地了解OutputAttributeAggregator类的用法。

Siddhi的内部工作有时需要输出属性聚合器的新实例。您只需要创建该类的新实例并将其以newInstance方法返回。