0

我正在使用Siddhi编写一个小型 CEP 程序。每当给定过滤器输出这样的数据时,我都可以添加回调

executionPlanRuntime.addCallback("query1", new QueryCallback() {
        @Override
        public void receive(long timeStamp, Event[] inEvents, Event[] removeEvents) {
            EventPrinter.print(inEvents);
            System.out.println("data received after processing");
        }
    });

但是有没有办法知道过滤器已经完成处理并且它不会再提供上述回调。类似的东西didFinish。我认为那将是关闭SiddhiManagerExecutionPlanRuntime实例的理想场所。

4

1 回答 1

1

不。没有这样的功能,将来也不能支持。这背后的基本原理是,实时流处理查询将处理传入流并发出输出流。没有“完成加工”的概念。只要有输入,查询就会处理事件。

由于您的要求是关闭 SiddhiManager 和 ExecutionPlanRuntime,因此推荐的方法是在程序的某些清理方法中执行此操作。否则,您可以在回调中编写一些 java 代码来计算响应或时间等待并调用关闭。希望这可以帮助!!

于 2015-12-04T12:18:21.880 回答