是否可以在 Siddhi Cep 中控制时间

Is it possible to control time in Siddhi Cep

在下面的例子中,时间是cpu时间。我正在努力的是,当我 运行 一个用于回测目的的时间序列时,数据会按顺序到达但速度要快得多,并且基于定时 window 的后续逻辑将不正确 我的问题: - 对我来说理想的解决方案是使用到达时间序列事件的时间戳更改 Siddi 时间。这样做有可能吗? - 如果没有,有什么解决此问题的建议。

from fooStream#window.timeBatch(10 sec)
select count() as count
insert into barStream;

或许您可以为此使用 Siddhi 的外部时间 windows 功能。

查看文档 https://wso2.github.io/siddhi/api/latest/#externaltime-window

您可以根据需要使用 siddhi externalTimeWindow[1]。

对于 extenrnalTimewindow,您可以提供自己的时间戳,window 时间将根据您提供的时间戳计算。

[1] https://wso2.github.io/siddhi/api/latest/#externaltime-window

您可以使用前面提到的 externalTimeWindow[1]。但是,您要查找的是 playback [2]。

在 Siddhi 中,内部有两个 TimestampGenerator。即 EventTimeBasedMillisTimestampGeneratorSystemCurrentTimeMillisTimestampGenerator。默认情况下 SystemCurrentTimeMillisTimestampGenerator 将与 Siddhi CEP 引擎一起使用。但是,如果您使用 playback 注释,它将变为 EventTimeBasedMillisTimestampGenerator。如果你使用这个,Siddhi 将使用到达时间序列事件的时间戳作为 CEP 引擎时间。

[1] https://wso2.github.io/siddhi/api/latest/#externaltime-window

[2]https://wso2.github.io/siddhi/documentation/siddhi-4.0/#appplayback

[3] https://github.com/wso2/siddhi/blob/master/modules/siddhi-core/src/test/java/org/wso2/siddhi/core/managment/PlaybackTestCase.java