我的代码如下:
StreamExecutionEnvironment env= StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<MyObject> input = env.addSource(new MyCustomSource());
Pattern<MyObject, ?> pattern = Pattern.<MyObject>begin("start");
PatternStream<MyObject> patternStream = CEP.pattern(input, pattern);
...定义我的模式
DataStream<MyObject> resultStream = patternStream.select(new MyCustomPatternSelectFunction());
resultStream.addSink(new MyCustomSinkFunction(subscriptionCriteria));
try
{
env.execute();
}
catch (Exception exception)
{
log.debug("Error while ", exception);
}
这段代码可以正常工作并完成我想要的工作,并且我得到的结果流遵循我设置的模式。
我想知道的是,如果有可能将新模式应用于此源我随后在我希望时添加到环境中,从而获得不同模式的不同结果流而不调用env.execute()另一次因为当我除了我的新结果流之外我还能获得多余的旧结果流(即旧模式多次执行)?