问题标签 [nesper]
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 - 如何通过 C# 函数调用详细说明中间事件?
我是 NESPER 的新手,在我的应用程序(stm-A)的某些方面,我需要使用 C# 中的一个函数将原始事件转换为(可能)几个不同的事件(原始事件丰富,可能还有其他事件)
我认为一种可能的方法是为(stm-A)创建一个侦听器,调用该函数,然后将新事件再次注入引擎。
这是正确的?有更好的方法来做到这一点吗?
提前致谢。
esper - 是否可以在窗口中区分已删除的项目、项目何时更新或是否过期?
我是 NESPER 的新手,我有一个使用 StateEvent(id 字符串、ts long、State int)的应用程序。该应用程序基于 StateEvent 的 ts(Timestamp) 提供的值。StateEvent 的 state 属性的值可以根据一些条件进行修改,如果我有 3 个应用分钟(-2, - 1, 0)并且每分钟至少有一个状态 = 80,那么所有的状态分钟 -1,必须更改为另一个值:80
我已经定义
在最后一个子句中,我需要过滤以仅选择窗口中已过期的状态,而不是由合并(删除/插入)修改的状态,这可能吗?我不知道是否有另一种方法可以从窗口获取过期项目而不是使用 rstream,但这还不够。
如果您能帮助我,我将不胜感激。
esper - “输出”关键字的 NEsper 内存使用情况
我有许多输出一段时间(1~24 小时)的 EPL 语句,以下是我的语句
“SELECT MessageID, VName, count(VName) as count FROM DDIEvent(MajorType=4).std:groupwin(VName).win:time(3 小时).win:length(10) 按 VName 组具有 count(VName) > = 每 3 小时输出 10 次"
如果没有长度窗口的限制,我的案例将在 3 小时内保留大约 70 万条记录。
在上面,我的测试用例只有 100 个不同的 VName。据我了解,最多可以同时保存 1000 条记录,(100 * 10[length]) 对吗?
但是我的应用程序的内存使用量将不断增长,直到输出到侦听器。
内存使用与没有长度窗口的样本几乎相同。
在输出给听众后,内存明显下降。
然后,另一个循环开始,记忆缓慢增长,直到 3 小时后。
我已经检查了文档,没有找到“输出”关键字的内存相关主题。
有谁知道真正的根本原因是什么?以及如何避免?还是只是我的 EPL 的问题?
谢谢~
c# - 如何以及在哪里使用 NEsper 中的 EPL 添加命名窗口?
我已经拥有该createstatement
功能并成功检测到一个简单的事件。我现在的问题是使用 EPL 处理一个复杂的事件。
我需要在同一个过程中处理简单和复杂的事件。我以为我可以用namedwindow
它来处理它,但是我不知道如何以及在namedwindow
我的程序中放置命令的位置,因为我还没有掌握 EPL 语言和 NEsper。
我应该在哪里打电话namedwindow
?
arrays - 用 Esper 语法剖析字符串(删除部分)
我正在使用 esper 语句与变量进行比较并在变量 1 != 变量 2 时触发。
我的问题是 variable1 包含我不关心的其他信息。我只想匹配第一部分
示例数据:变量 1 = testdata.bad.info 变量 2 = testdata
我不希望以下语句匹配:variable1 != variable2
理想情况下,我希望该语句删除变量 1 小数点后的所有内容。如果是这种情况,该语句将对其进行评估,如下所示:
变量 1 = 测试数据 变量 2 = 测试数据
知道如何实现这样的目标吗?
design-patterns - win.length 在 EPL Nesper 中使用模式时得到错误的结果
我有窗户长度的问题。
我的条件: 1-如果事件在长度 3 内发生,则输出将触发 2-如果事件在长度 3 之后发生,则输出关闭
示例: 事件顺序:1:A 2:B 3:C 4:D 5:E 6:A 7:C 8:D 9:E 10:F 11:B 事件规则: Z = A --> B 预期输出: Z 将出现在索引号 2 处,因为 win:length(3)
我的问题:输出 Z 也在索引号 11 处触发,即使它超过了 win:length(3)
我的简单代码:
谁能帮我弄清楚如何解决这个问题?提前致谢。
esper - 有人能解释一下在 Esper 中使用什么数据流吗?
我在 esper 文档中阅读了有关数据流的信息,但不明白应该在应用程序的哪个位置使用它。
当我运行上面的代码时,当我使用 EPDataFlowINstance .run() 流时没有任何反应
esper - 在缩略图窗口中调用一次方法,但输出所有包含的事件
我怎样才能调用像这样的方法
并再次打印大小为 5 的窗口。假设我发送以下事件:
并在批处理后以相同的顺序打印出来。这意味着调用的方法 udf(a,b) 每批只能执行一次。我使用了 updatelistener,但我必须将它作为方法事件调用,尽管我可以使用侦听器获得所需的结果。
谢谢。
esper - 不能在 where 子句中使用用户定义的函数返回值
我在 Esper 中有一个 UDF,它返回一个 int
如果我这样做
它返回
{getVal(eventAttribute)=3 } //3 例子可以是任何东西
但是,如果我指定
听众不会更新
有谁知道为什么?我必须在 Event 类中设置属性吗?因为它从 select 子句更新,但带有 WHERE 子句,即使它返回 int = 3
编辑:
这行得通。
esper - 如何在窗口中维护一组事件属性?
是否可以创建一个具有主键和 Set 作为辅助列的表,就像哈希表值中的列表?
像这样的东西:
该列表将包含与发生在窗口大小上的主键相关的所有属性。
编辑:
这是我得到的输出。我想要的是计算到达 id 1,2 和 3 的唯一事件。如果事件 2 在 ID 1 到达 3 次,我仍然只希望 1 是唯一的,而不是 3
在java中没问题,但我不明白如何在Esper中实现它。我什至不确定使用表格是否是正确的方法。