使用 Esper 实时注册缺失预期事件的触发器
Registering triggers for missing expected events using Esper in real-time
我的用例是实时识别在 X 时间后未收到预期事件的实体,而不是使用批处理作业。例如:
如果我们在时间 T 收到了 PaymentInitiated 事件,但在 T+X 之前没有收到 PaymentFailed / PaymentAborted / PaymentSucedded 中的任何一个,则引发一个触发器说 PaymentStuck 以及 PaymentIntitiated 事件的详细信息。
1.我可以使用 Esper 捕获此类触发器吗?
在我的实际用例中,X 不是常数,而是根据我在第一个事件发生之前知道的每条记录而变化。
2。 Esper 能否支持注册此类 X 不恒定的动态查询?
谢谢,
哈里斯
您可以使用 "pattern [every pi=PaymentInitiated -> timer:interval(pi.amountOfTimeInSeconds) and not (PaymentAborted(id=pi.id) or PaymentStuck(id=p.id))]" 这样的模式
外连接也可以方便地检测缺失。 Esper 网站中的解决方案模式页面有更多示例。
我的用例是实时识别在 X 时间后未收到预期事件的实体,而不是使用批处理作业。例如:
如果我们在时间 T 收到了 PaymentInitiated 事件,但在 T+X 之前没有收到 PaymentFailed / PaymentAborted / PaymentSucedded 中的任何一个,则引发一个触发器说 PaymentStuck 以及 PaymentIntitiated 事件的详细信息。
1.我可以使用 Esper 捕获此类触发器吗?
在我的实际用例中,X 不是常数,而是根据我在第一个事件发生之前知道的每条记录而变化。
2。 Esper 能否支持注册此类 X 不恒定的动态查询?
谢谢, 哈里斯
您可以使用 "pattern [every pi=PaymentInitiated -> timer:interval(pi.amountOfTimeInSeconds) and not (PaymentAborted(id=pi.id) or PaymentStuck(id=p.id))]" 这样的模式 外连接也可以方便地检测缺失。 Esper 网站中的解决方案模式页面有更多示例。