0
  1. 使用 Siddhi 1.x 我们可以:

    siddhiManager.defineStream("定义流 firstStream (id int, name string)"); siddhiManager.defineStream("定义流 secondStream (id int, name string)"); siddhiManager.defineStream("定义流thirdStream(id int, name string)");

    siddhiManager.addQuery("from every F = firstStream  " +
            " -> S = secondStream [F.id == S.id] within 1 min" +
            "insert into midStream F.id as id, F.name as name, S.id as secondId ;");
    
    siddhiManager.addQuery("from every M = midStream  " +
          " -> T = thirdStream [M.id == T.id] within i min " +
        "insert into outputStream M.id, M.name, T.id");
    
    InputHandler firstEventHandler = siddhiManager.getInputHandler("firstStream");
    InputHandler secondEventHandler = siddhiManager.getInputHandler("secondStream");
    InputHandler thirdEventHandler = siddhiManager.getInputHandler("secondStream");
    

然后我们可以将事件发送到适当的处理程序。我想对版本 3.0.4 做同样的事情

  1. 在 Siddhi 3.0.4 中,整个定义定义为

    String executionPlan1 = "定义流.." + "@info(name = 'query')" + "from ..";

    ExecutionPlanRuntime executionPlanRuntime1 = 
                    siddhiManager.createExecutionPlanRuntime(executionPlan1);
    

所以我尝试创建多个 ExecutionPlanRuntime 并且每个都有自己的流定义,但它没有用。我们还需要定义 midStream 吗?

  1. 任何人都可以建议正确的方法来向 SiddhiManager 添加多个查询,以便实现我在第一点提到的我们可以做的事情。?

感谢和问候

4

1 回答 1

0

是的,您也可以这样做.. 请查看 参考资料.. 它显示了如何获取多个流的输入处理程序并发布事件..

请注意,您不必在这里创建多个 executionPlanRuntimes.. 也不需要定义中间流..

如果您想从中间流中获取事件,那么您只想像这样创建流回调

于 2016-05-05T12:26:41.603 回答