问题标签 [epl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
esper - 如何在 Esper CEP 中触发部分匹配模式
我正在尝试解决路线违规问题。用户将路线定义为需要查看某些项目的一系列位置序列(按确切顺序)。所以可以说正确的路线是(这是由用户定义的)
A -> B -> C
我正在尝试编写 Esper EPL,它将在所有违反路线的情况下触发。A 是一个起点,它需要开始一个模式(一个有效的位置)。
A -> !B -> !C
当在 ESPER 中找到所有 3 种类型的事件时,这将触发。
但是我想要的也是当只有部分组合时开火
A -> !B
或者
!B -> !C
或者
B -> !C
因为如果在 B 上错过了路线,那么我可能永远不会来 C,也不会收到路线违规的通知。
这甚至可以用 Esper 中的模式实现吗?
complex-event-processing - lastUnique() 的对面
一般来说,Esper 和 EPL 的新手,我有两个基本相反的用例。首先,我需要在时间窗口中捕获所有独特事件,使用firstunique(*parameters*).win:time(*time*)
.
现在我需要做的是完全相反的,基本上捕获所有到达该窗口并且未被该语句抛出的事件,基本上是所有重复项。
我怎样才能做到这一点?谢谢 !
esper - 埃斯珀丢弃事件
我有一个利用 Esper 的平台。但是,所有事件都被插入到 Event 表中并发送到 Esper 进行处理。我的规则只针对大约 10% 的数据集,但通过引擎的 90% 其他数据阻碍了我的警报触发。
有没有办法告诉 Esper 丢弃我在摄取时不关心的事件,所以我有一个较小的流通过实际的警报/规则处理引擎?
grouping - esper 分组输出多个 newEvents
我的EPL很简单:
听者:
我认为对于我的 epl,newEvents.length > 1 是不可能的。
有人可以为我解释一下吗?谢谢
time - 埃斯珀:将事件添加到时间累积窗口提供了一个属性条件
我最近一直在使用 Esper,我在文档中遗漏了一个功能,但它可能存在。
我想存储一些事件,直到 15 秒内没有人弹出,当它发生时将它们全部释放。
一个查询正是这样做的,它是:
我可以在 MyEvent 上添加一个条件,例如
这非常有效。
现在我想在 eventType 属性上添加一个条件:
如果使用 eventType xxxx 触发了一个新事件,但窗口中已经有一个带有 eventType xxxx 的事件,则不要将此新的弹出事件添加到窗口中(因此不要在 0 到 15 秒之间停止秒表)。
有没有办法做到这一点 ?
非常感谢 !
编辑 :
更深入地研究我的需求和 ESPER 文档,我认为我的需求更满意
我不认为我需要 rstream,因为我只想累积 1 或 2 个元素并在一个数组中一次性获取它们(新事件很好)。
但是,是否可以在进入窗口的第一个(也是唯一一个) MyEvent 上添加条件?它是状态 = 'ALARM_END'。
printing - Can zebra technologies ZTC gc420t EPL print the file which contains ZPL code?
ZPL Code:
Task.txt
I have Zebra Technologies ZTC GC420t (EPL) printer connected thorough USB to my Mac.
I have 4 drivers :
- Zebra EPL1 label Printer
- Zebra EPL2 label Printer
- Zebra EPL3 Label Printer
- Zebra ZPL label Printer.
I have Selected Zebra ZPL label Printer.
I am new in ZPL.
- What should be the extension of file which contains ZPL code?
- What should be the proper driver of Zebra ZTC gc420t(EPL) to print ZPL code?
- Is it possible that Zebra ZTC GC420t (EPL) can print ZPL code? If yes, then how?
Problem: I wanted the output of my ZPL code like this ZPL Viewer, but I am only getting text, not the output.
Any suggestion will be appreciated.
java - 在 Esper 中替代 setSubscriber
我正在尝试将订阅者附加到 Esper 中的事件,但我想为此使用 .epl 文件。我一直在浏览存储库,并且看到了使用注释接口的示例。我试图像他们在 CoinTrader 中那样做,但我似乎无法让它工作。然而,如果我在 Java 中设置订阅者,它就可以工作。
这是我的 .epl 文件:
这是我的配置文件:
这是我的订阅者界面:
这是我的活动课程:
我的主要文件是这样的:
如您所见, setSubscriber 行已被注释掉。当我按原样运行它时,我希望订阅者会被识别和注册,但事实并非如此。我只得到控制台中流动的滴答事件。如果我取消该行并运行它,我会在每次滴答后收到一条通知,表明订阅者收到了事件并且一切正常。
我究竟做错了什么?如何在 .epl 文件中设置订阅者?
java - 创建 Esper 的 epl 实例
我正在玩 Esper,学习如何使用更高级的概念。我有一个程序可以触发 3 种不同股票的模拟股票事件。我目前有一个带有 match_recognize 模式 EPL 的模块,如下所示:
如您所见,其中包含三个变量 - firstStock、secondStock、difference。我接受用户的输入,然后在 java 代码中设置变量,如下所示:
如果我只想一次跟踪一个股票对,那效果很好。我正在努力为多对找到一种方法。我希望能够动态地创建/删除/启动/停止对。例如,假设我有 YAH、APP、MIC、GOO 股票。事件开始运行,我决定要跟踪 MIC/GOO 之间超过 X 量的差异。然后我决定我也想跟踪不同数量的 APP/GOO。数据将是这样的:
[IBM,YAH,5] [GOO,APP,3] ....
关于如何做到这一点的任何建议?我想我需要用一组新的变量创建一个新的 EPL 实例。我可以在 java 代码中轻松地做到这一点,但我想尽可能地远离它。我想使用模块文件。由于它本质上是相同的 EPL,因此有一种方法可以将其用作具有不同股票对的多个“实例”的模板。
或者,还有其他有效实现这一目标的方法吗?
我让它工作了,我注意到错误来自文件中不再存在的文本,所以我删除它并重写它并且它工作。现在一切都已成功部署,看起来是这样的:
esper - 将 EPL 模块中的订阅者/侦听器附加到具有上下文分区的语句
我有以下成功部署的 EPL 模块:
我的听众/订阅者有问题。根据我的检查和调试,这些类没有任何问题,注释有效,它们在部署时附加到语句中,但它们都没有从事件中收到任何更新。
这是我的订阅者,我只想打印它已收到:
我以前有相同的模块,没有任何上下文分区,然后订阅者工作没有问题。添加上下文后,它停止了。
到目前为止,我已经尝试过:
- 检查语句是否附加了任何订阅者/侦听器(确实如此)
- 检查他们的名字
- 删除注释并在部署后在 Java 代码中手动设置它们(同样的事情 - 它们附加,我可以检索它们的名称但仍然没有收到更新)
- 调试订阅者类。程序要么根本不去那里停止在断点处,要么我得到一个错误(缺少行号属性错误 - (“不能在那里放置断点”我试图修复无济于事)
知道什么可能导致这种情况,或者将订阅者设置为具有上下文分区的语句的最佳方法是什么?
这是先前问题的延续,此处已解决 -创建 Esper 的 epl 实例
编辑:以我使用的格式和 EPL 在线工具格式发送事件:
我首先从用户那里得到要遵循的对:
之后我有一个引擎线程不断发送事件,但在它开始之前 InitEvents 是这样发送的:
我以前没有使用过在线工具,但我认为我可以使用它。这是模块文本:
以及事件的顺序:
我使用它们的结果:
如果我让第二组事件在 YAH/GOO 之间的差异小于 5,我只能从第一对得到输出,这是有道理的。这是,我认为它应该做的。
如果需要,这两个方法读取并处理 EPL 模块的注释(我自己没有编写它们,它们取自可在此处找到的 coinTrader Context 类 - https://github.com/timolson/cointrader/ blob/master/src/main/java/org/cryptocoinpartners/module/Context.java):