问题标签 [complex-event-processing]

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 回答
611 浏览

architecture - Valve 是如何在军团要塞 2 中构建他们的实时成就引擎的?

我在 Steam 上玩《军团要塞 2》时注意到的成就的复杂性令人惊叹。

是否有任何资源描述了他们如何构建成就引擎?必须同时实时处理大量数据,以检测是否符合成就标准。我觉得它没有使用熟悉的概念,例如“复杂事件处理”。

0 投票
3 回答
2362 浏览

drools - CEP 是我需要的吗(系统状态和事件重放)

我正在寻找 CEP 引擎,但我不知道是否有任何引擎符合我的要求。我的系统必须处理多个事件数据流并生成复杂的事件,而这正是几乎所有 CEP 引擎(ESPER、Drools)都非常适合的。

我将所有原始事件存储在数据库中(它不是 CEP 部分,但我这样做)并使用规则(或连续查询或其他东西)来生成对复杂事件的自定义操作。但我的一些规则取决于过去的事件。例如:每当我的配偶回家或离开家时,我可以有一个传感器发送事件,如果我的车和我喜欢的女人的车都在房子附近,我会收到短信“危险”。

问题是,随着事件处理服务的重新启动,我丢失了有关系统状态的所有信息(我的妻子在家吗?)并且要恢复它,我需要在未知的时间段内重播事件。系统状态不仅可以依赖于原始事件,还可以依赖于复杂事件。

当我需要一些关于过去复杂事件的报告时,也会出现同样的问题。我将原始事件数据存储在数据库中,并且可以生成这些复杂事件来重播原始事件,但我不知道我必须在哪个时期重播它们。

同时很明显,对于大多数规则,可以自动找到过去要处理的事件数(或加载要处理的事件的时间段)以恢复系统状态。如果给定的行动取决于我妻子在家的存在,CEP 系统必须请求最后一次状态更改。如果请求报告复杂事件且复杂事件取决于上一期间的平均价格,则应重播该期间的所有价格变化事件。等等...

如果我错过了什么?

0 投票
1 回答
968 浏览

esper - 查询中的 Esper\Time 函数

我是使用 esper 引擎(java)的新手——我在他们的文档中没有找到以下问题的答案:

我的事件对象有 Date 成员。此 EPL 查询语言中有哪些日期函数可用于比较日期(之前、之后)以计算两个日期之间的间隔([ where d1 - d2 > 4 days] 等)

简而言之,这个查询语言的所有日期函数在哪里?

0 投票
2 回答
439 浏览

esper - 埃斯珀 - 如何建立异议“声明工厂”?

使用 Esper 引擎 - 我发现自己编写了很多字符串 SQL,并执行了很多字符串操作来将查询插入 EPStatement 对象。

以更方便的方式构建查询的最佳实践是什么?也许不是用纯字符串而是用对象构建查询?(有人用过 EPManagedStatement 对象吗?)

0 投票
1 回答
583 浏览

esper - 连接在不同 JVM 中运行的两个 Esper 实例(客户端/服务器模式?)

我有一台运行 JVM 的主机,该 JVM 运行一个 Esper 服务。我有另一台主机,我想在其中连接到在第一个 JVM 中运行的 esper 服务。

即我希望能够做这样的事情:

我无法从文档中找到执行此操作的方法,但我认为这将是一个相当普遍的要求。这种事情一般是怎么做的?

0 投票
0 回答
1635 浏览

rule-engine - 规则引擎与 CEP

场景:最终用户想要定义对系统内发生的一组数据更改事件的操作。这些操作应该是可配置的。我在下面有几个问题:

  1. 我的第一个问题是我们如何监控数据更改并从数据库层引发事件?因为没有单点进入数据库。我知道的可能的解决方案是 DB Triggers、Change Tracking & Change Data Capture。它们都是基于拉模型的,它们真的是很好的选择吗?

  2. 谁应该观察这些事件?我们是否应该将它们排在一张桌子上并从那里一个接一个地挑选它们?

  3. 它是复杂事件处理的正确用例吗?

  4. 很明显,动作的可配置性可以直接来自任何规则引擎,如 drools、flexrule 等。这是正确的方法吗?有很多博客都在谈论规则引擎是一个不好的选择。

0 投票
1 回答
207 浏览

java - 无法通过 EsperIOSocketAdapter 接收事件

我正在尝试通过套接字将事件发送到 Esper 引擎并遇到了一些问题。

我已经配置了 EsperIOSocketAdapter 属性,当调用 EsperIOSocketAdapter.start() 方法时,它会启动一个新的守护线程来监听客户端,但是守护线程在套接字客户端实际尝试连接之前退出,因为父线程退出。

我的代码片段如下:

另一个疑问是在程序中没有使用我用来通过代码发送事件的 SocketAdapter

EPRuntime.sendEvent(new TestEvent(event));

在使用 SocketAdapter 时,我应该使用 sendEvent() 否则事件会自动推送到引擎中。

0 投票
1 回答
442 浏览

java - Esper:请注意,当事件数量(具有特定参数)超过阈值时

找了很长时间的解决方案:

我有一个联系表格。每次有人通过它发送邮件时,都会向 Esper 发出一个 ContactEvent(receiver, senderIpAddress)。现在,我希望 Esper 通知我,当一个特定的 IP 地址在 10 分钟内发出超过 50 个联系事件时。

以下代码中的语法错误是由于代码简化

然后我像这样填充它:

最终,有一个事件监听器是这样的:

这实际上有效。这并不完全是我想要的强硬,因为每次发出我的语句侦听器,IP 地址的消息计数都会发生变化。(“IP X 在过去 10 分钟发送了 43 条消息”,“IP X 在过去 10 分钟发送了 44 条消息”,...)我只想得到一个事件告诉我“IP X 超过 50 条消息在最后 10 分钟”,另一个告诉我,它现在已经下降到该边界以下。

有没有办法让它工作?

0 投票
1 回答
980 浏览

.net - CEP 平台中的 Rx 缺少哪些功能?

NEsper 或 MS StreamInsight 等 CEP 平台中的 Rx 缺少哪些功能?

0 投票
1 回答
347 浏览

visual-studio - 将 Microsoft StreamInsight 事件流调试器与进程内主机一起使用

我正在尝试使用事件流调试器工具连接到在 Visual Studio(而不是 Windows 服务版本)中运行的进程内 StreamInsight 主机,但我没有成功。

这个事情谁有经验?我正在查看以下博客文章:

端到端 StreamInsight 示例:http: //blogs.msdn.com/b/masimms/archive/2010/08/10/building-your-first-end-to-end-streaminsight-application.aspx

进程内与独立主机部署模型:http ://seroter.wordpress.com/2010/06/27/leveraging-and-managing-the-streaminsight-standalone-host/