我计划使用历史事件跟踪(存储在 JSON 中,并为每个事件记录我自己的事件时间戳)来调试我刚刚创建的 Siddhi 流查询。我的直播开始于:
从 MyInputEventStream#window.externalTime(my_own_timestamp, 10 min) 选择 some_fields 插入 MyOutpuStream;
我将从痕迹中一一输入我的事件。
假设事件 1 到达指定的 my_own_timestamp = 1528905600000,即太平洋标准时间 6 月 13 日上午 9 点。而事件 2 在 11 分钟后到达,my_own_timestamp = 1528906260000。我相信我会在上午 9:10 在 MyOutpuStream 获得输出,因为time_stamp(e2) - time_stamp(e1) > 10 min,并且e2会在windows过去后触发系统。
现在假定事件 1 到达 my_own_timestamp = 1528905600000,即上午 9:00。但在接下来的 2 小时内不会有任何事件发生。我是否仍然在上午 9:10 获得输出,因为实际上,窗口时间应该在上午 9:10 到期,与下一个事件何时到达无关?但似乎在这种情况下,Siddhi 的内部计时系统将不得不合并我的事件输入的时间戳,然后根据运行 Siddhi 的进程的时钟系统设置事件的到期时间。这个对吗?你能帮忙澄清一下吗?