问题标签 [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.

0 投票
1 回答
102 浏览

esper - 如何在 Esper CEP 中触发部分匹配模式

我正在尝试解决路线违规问题。用户将路线定义为需要查看某些项目的一系列位置序列(按确切顺序)。所以可以说正确的路线是(这是由用户定义的)

A -> B -> C

我正在尝试编写 Esper EPL,它将在所有违反路线的情况下触发。A 是一个起点,它需要开始一个模式(一个有效的位置)。

A -> !B -> !C

当在 ESPER 中找到所有 3 种类型的事件时,这将触发。

但是我想要的也是当只有部分组合时开火

A -> !B

或者

!B -> !C

或者

B -> !C

因为如果在 B 上错过了路线,那么我可能永远不会来 C,也不会收到路线违规的通知。

这甚至可以用 Esper 中的模式实现吗?

0 投票
2 回答
41 浏览

complex-event-processing - lastUnique() 的对面

一般来说,Esper 和 EPL 的新手,我有两个基本相反的用例。首先,我需要在时间窗口中捕获所有独特事件,使用firstunique(*parameters*).win:time(*time*).

现在我需要做的是完全相反的,基本上捕获所有到达该窗口并且未被该语句抛出的事件,基本上是所有重复项。

我怎样才能做到这一点?谢谢 !

0 投票
1 回答
75 浏览

esper - 埃斯珀丢弃事件

我有一个利用 Esper 的平台。但是,所有事件都被插入到 Event 表中并发送到 Esper 进行处理。我的规则只针对大约 10% 的数据集,但通过引擎的 90% 其他数据阻碍了我的警报触发。

有没有办法告诉 Esper 丢弃我在摄取时不关心的事件,所以我有一个较小的流通过实际的警报/规​​则处理引擎?

0 投票
1 回答
2609 浏览

java - Zebra 打印机 GC420t 不打印图像 EPL 2 GW

使用 JasperReport 生成图像,然后尝试在 Zebra 打印机GC420t上打印该图像。图像已生成但未打印。我已经仔细检查了连接和端口。我已阅读此 SO 链接以及校准链接,但没有任何效果。

代码:

我阅读了EPL 2 手册并将图像转换为二进制图形数据以便立即打印。

代码:

将图像转换为二进制图形数据后,它不会打印数据。

如何让打印机打印图像?

0 投票
1 回答
42 浏览

grouping - esper 分组输出多个 newEvents

我的EPL很简单:

听者:

我认为对于我的 epl,newEvents.length > 1 是不可能的。

有人可以为我解释一下吗?谢谢

0 投票
1 回答
176 浏览

time - 埃斯珀:将事件添加到时间累积窗口提供了一个属性条件

我最近一直在使用 Esper,我在文档中遗漏了一个功能,但它可能存在。

我想存储一些事件,直到 15 秒内没有人弹出,当它发生时将它们全部释放。

一个查询正是这样做的,它是:

我可以在 MyEvent 上添加一个条件,例如

这非常有效。

现在我想在 eventType 属性上添加一个条件:

如果使用 eventType xxxx 触发了一个新事件,但窗口中已经有一个带有 eventType xxxx 的事件,则不要将此新的弹出事件添加到窗口中(因此不要在 0 到 15 秒之间停止秒表)。

有没有办法做到这一点 ?

非常感谢 !

编辑 :

更深入地研究我的需求和 ESPER 文档,我认为我的需求更满意

我不认为我需要 rstream,因为我只想累积 1 或 2 个元素并在一个数组中一次性获取它们(新事件很好)。

但是,是否可以在进入窗口的第一个(也是唯一一个) MyEvent 上添加条件?它是状态 = 'ALARM_END'。

0 投票
2 回答
1093 浏览

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 :

  1. Zebra EPL1 label Printer
  2. Zebra EPL2 label Printer
  3. Zebra EPL3 Label Printer
  4. Zebra ZPL label Printer.

I have Selected Zebra ZPL label Printer.

I am new in ZPL.

  1. What should be the extension of file which contains ZPL code?
  2. What should be the proper driver of Zebra ZTC gc420t(EPL) to print ZPL code?
  3. 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.

0 投票
1 回答
169 浏览

java - 在 Esper 中替代 setSubscriber

我正在尝试将订阅者附加到 Esper 中的事件,但我想为此使用 .epl 文件。我一直在浏览存储库,并且看到了使用注释接口的示例。我试图像他们在 CoinTrader 中那样做,但我似乎无法让它工作。然而,如果我在 Java 中设置订阅者,它就可以工作。

这是我的项目结构供参考

这是我的 .epl 文件:

这是我的配置文件:

这是我的订阅者界面:

这是我的活动课程:

我的主要文件是这样的:

如您所见, setSubscriber 行已被注释掉。当我按原样运行它时,我希望订阅者会被识别和注册,但事实并非如此。我只得到控制台中流动的滴答事件。如果我取消该行并运行它,我会在每次滴答后收到一条通知,表明订阅者收到了事件并且一切正常。

我究竟做错了什么?如何在 .epl 文件中设置订阅者?

0 投票
1 回答
344 浏览

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,因此有一种方法可以将其用作具有不同股票对的多个“实例”的模板。

或者,还有其他有效实现这一目标的方法吗?

我让它工作了,我注意到错误来自文件中不再存在的文本,所以我删除它并重写它并且它工作。现在一切都已成功部署,看起来是这样的:

0 投票
1 回答
268 浏览

esper - 将 EPL 模块中的订阅者/侦听器附加到具有上下文分区的语句

我有以下成功部署的 EPL 模块:

我的听众/订阅者有问题。根据我的检查和调试,这些类没有任何问题,注释有效,它们在部署时附加到语句中,但它们都没有从事件中收到任何更新。

这是我的订阅者,我只想打印它已收到:

我以前有相同的模块,没有任何上下文分区,然后订阅者工作没有问题。添加上下文后,它停止了。

到目前为止,我已经尝试过:

  1. 检查语句是否附加了任何订阅者/侦听器(确实如此)
  2. 检查他们的名字
  3. 删除注释并在部署后在 Java 代码中手动设置它们(同样的事情 - 它们附加,我可以检索它们的名称但仍然没有收到更新)
  4. 调试订阅者类。程序要么根本不去那里停止在断点处,要么我得到一个错误(缺少行号属性错误 - (“不能在那里放置断点”我试图修复无济于事)

知道什么可能导致这种情况,或者将订阅者设置为具有上下文分区的语句的最佳方法是什么?

这是先前问题的延续,此处已解决 -创建 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):