使用 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 做同样的事情
在 Siddhi 3.0.4 中,整个定义定义为
String executionPlan1 = "定义流.." + "@info(name = 'query')" + "from ..";
ExecutionPlanRuntime executionPlanRuntime1 = siddhiManager.createExecutionPlanRuntime(executionPlan1);
所以我尝试创建多个 ExecutionPlanRuntime 并且每个都有自己的流定义,但它没有用。我们还需要定义 midStream 吗?
- 任何人都可以建议正确的方法来向 SiddhiManager 添加多个查询,以便实现我在第一点提到的我们可以做的事情。?
感谢和问候