Esper:如何立即对超温做出反应,并且每隔30秒拍照一次?

时间:2017-03-15 16:36:22

标签: java esper

TL; DR

我试图创建一个Esper查询:

  • 立即反应到房间内的温度过高;
  • 每30秒输出一次所有室温的快照。

快照功能正常...

  • 到目前为止,我每30秒就有一次快照。
  • 唯一缺少的是让它立即发布,如果有任何空间 温度升高到35摄氏度以上(所以我们不必等到预定的快照)。
  • 我已阅读all of the documentation,但无法弄清楚如何正确理解这一点。
到目前为止

Esper查询:

// Schema for IncomingRoomTemperatures:
//   double temperatureCelsius
//   string roomDescription

// Intent: Input from Java.
CREATE WINDOW RoomTempaturesThrottled.std:unique(roomDescription) 
              as SELECT * FROM IncomingRoomTemperature;

INSERT INTO RoomTempaturesThrottled
SELECT
    *
FROM IncomingRoomTemperature r
WHERE r.temperatureCelsius >= 35;

// Intent: Output to Java.
@Name('room-temperatures-throttled')
SELECT * FROM RoomTempaturesThrottled
OUTPUT SNAPSHOT EVERY 10 SECONDS;

1 个答案:

答案 0 :(得分:1)

没有比这更需要的了:

// react if any room's temperature rises above 35 degrees celsius.
SELECT * FROM IncomingRoomTemperature(temperatureCelsius >= 35)