我有以下案例场景
有 2 台虚拟机正在向 Kafka 发送流,CEP 引擎正在接收这些流,当单个流满足特定条件时会生成警告。
目前,CEP 正在检查两个患者的两条数据流(当心率 > 65 和呼吸率 > 68 时)是否相同,并同时发出警报,如下所示
// detecting pattern
Pattern<joinEvent, ? > pattern = Pattern.<joinEvent>begin("start")
.subtype(joinEvent.class).where(new FilterFunction<joinEvent>() {
@Override
public boolean filter(joinEvent joinEvent) throws Exception {
return joinEvent.getHeartRate() > 65 ;
}
})
.subtype(joinEvent.class)
.where(new FilterFunction<joinEvent>() {
@Override
public boolean filter(joinEvent joinEvent) throws Exception {
return joinEvent.getRespirationRate() > 68;
}
}).within(Time.milliseconds(100));
但我想对两个流使用不同的条件。例如,我想发出警报,如果
For patient A : if heart rate > 65 and Respiration Rate > 68
For patient B : if heart rate > 75 and Respiration Rate > 78
我该如何做到这一点?我是否需要在同一环境中创建多个流环境或多个模式。