问题标签 [siddhi]

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

wso2 - 使用 Siddhi 加入更新/删除 WSO2 CEP 事件表

我有一个 userStreamname,address,status

我想将此详细信息存储在UserDetailsTable(内存表中)

UserDetailsTable 的结果如下

我还有另一个triggerStream名字,triggerStatus

案例1)triggerStream作为“Rockey”出现时,我想UserDetailsTable根据(名称和triggerStatus)加入这个triggerStream并从UserDetailsTable中删除该行。

案例2)triggerStream作为“Jose”出现时,我想根据(名称和triggerStatus)加入这个triggerStream并在UserDetailsTable中将状态更新为“true”。UserDetailsTable

UserDetailsTable 的最终状态如下。

怎么能用 WSO2 CEP 做到这一点?

0 投票
1 回答
131 浏览

stream - WSO2 CEP SIDDHI LANGUAGE 布尔类型

定义流时是否允许在 siddhi 查询语言中使用布尔类型?通过查看 Siddhi 版本 310“ https://docs.wso2.com/display/CEP310/Language+Model ”的语言模型,看起来不支持流布尔属性类型。它们只允许:int、long、double、float、string、time 类型。

0 投票
0 回答
64 浏览

java - 如何判断代码的哪一部分没有终止?

我正在运行从 Siddhi 示例复制的以下代码。在到达代码的最后一行时,Eclipse 表明某些东西仍在运行。我怎样才能知道它是什么并关闭它?

请注意,我对如何跟踪此类问题比在此特定情况下更感兴趣,因为我在其他库中也发生了同样的情况。

0 投票
3 回答
870 浏览

java - 如何将 Siddhi CEP 的依赖项添加到我的 pom.xml 文件中?

有谁知道如何添加对最新版本的 Siddhi CEP 的依赖(最好不克隆源)?我试过(来自Github repo):

但是我得到一个缺少依赖的错误。很确定这是因为我对 Maven 了解不够,但到目前为止我还没有弄清楚这一点。

更新- 根据要求。所有 pom.xml 文件:

0 投票
1 回答
817 浏览

wso2 - 使用两次窗口和 2 个流通过 Siddhi CEP 进行查询(续)

我一直在尝试与 Siddhi 建立复杂的关联,在这种情况下,我有两个输入流,Web 客户端咨询和发送给客户访问的通知,如果每个客户端的第一个流重复不止一次,我想生成警报第二个流未发生在两个窗口下,取决于此事件的状态。

我尝试做的是使用中间流来计算大于或等于 2 时的网站点击次数,我看看它是否已经通过各种加入为该客户做出了商业行为......我想我已经变得很复杂,不知道有没有更简单的解决方案???,考虑到它没有功能 Siddhi NOT Happened 也没有其他连接(左连接)

0 投票
1 回答
665 浏览

wso2 - 如何在 CEP 中实现连续时间窗口?

假设我有一个事件流,我希望能够计算一个时间窗口中有多少事件。我想在事件进入时间窗口并更改计数时收到通知,当事件退出时间窗口时也是如此。

下图显示了我的意思。我正在使用长度为 4 的时间窗口,我想要 3 个通知,一个在第一个事件进入窗口时,第二个在第二个事件进入时,第三个在第一个事件退出时间窗口时。

在此处输入图像描述

如何进行这样的查询?如果我还想按事件的属性分组怎么办?

这是我到目前为止所拥有的,但是当事件离开窗口时它不会给我通知:@config(async = 'true') define stream myStream (symbol string, timeStamp long) @info(name = 'query1') from myStream#window.externalTime(timeStamp,10 sec) select symbol, timeStamp, count(timeStamp) as eventCount group by symbol insert into outputStream。这是针对 SIddhi CEP 的,但我想 Esper 会是类似的。

0 投票
2 回答
129 浏览

wso2 - 为什么所有事件都是大量出现而不是一个一个出现?

我正在使用外部定时窗口测试一个非常简单的 CEP 查询。查询是define stream LoginEvents (timeStamp long, ip string, phone string); @info(name = 'query1') from LoginEvents#window.externalTime(timeStamp,5 sec) select timeStamp, ip insert all events into uniqueIps;

看看这里的单元测试,我想会发生什么是回调将被调用 9 次,传入事件 5 次,过期 4 次。相反,它只被调用一次。为什么会这样,我怎样才能达到为每个事件调用回调的状态?

0 投票
1 回答
969 浏览

wso2 - WS02 CEP Siddhi 查询

Siddhi CEP 的新手。除了 WS02 CEP 上的常规文档之外,有人可以指出一个很好的教程。

这是我们的要求。指出有关编写此类查询的正确方法的一些线索。

  • 拥有单一的传感器设备通知流(物联网应用程序)。
  • 流输入是通过 REST-JSON 并且输出也将被格式化为 REST-JSON。(希望这在 WS02 CEP 3.1 上是可能的)

所需的执行计划种类: - 如果设备通知报告传感器 1 的使用情况,则在 5 分钟内监控设备通知是否也报告传感器 2 的使用情况。如果找到,则在 REST-JSON 上生成报告复合活动的输出流。
- 如果在上午、下午和晚上的时间段内未检测到此类复合活动,则在 REST-JSON 上生成警告事件流状态。(那么如何找到未及时发生的事件) - 如果在早上、下午和晚上的某些时间段内未找到此类复合活动,则在 REST-JSON 上报告 failure1-event-stream 状态。

这应该每天都在工作,那么之前处理的数据将如何在 WSO2 CEP 中被删除。

问候, 阿米特

0 投票
1 回答
454 浏览

wso2 - 使用超时使用 siddhi 编写“到达”和“离开”查询

我希望在我的应用程序中用 Siddhi 替换 Esper。现在的 esper 语句是一种“超时”类型模式,当具有唯一“名称”和“类型”的事件(我可以在传入事件中查找的字符串值)到达和离开时,我需要报告回来。我知道当事件第一次到达我的第一个唯一窗口时事件已经到达,并且我假设如果我没有看到任何同名的事件并输入用户定义的超时值,事件就会离开。这是我的 esper 语句的样子(请注意,在实际的 esper 中还有很多事情要做,我只是为了举例而简化了这个):

创建窗口 events_1.std:firstunique(name, type) 作为 NameEvent

插入 events_1 从 EventCycle [events] 中选择 *

在模式 [每个 event1=events_1->(timer:interval(4.0 sec) 而不是 events_1(name=event1.name, type=event1.type))] 从 events_1 中删除 name = event1.name AND type=event1.type

然后我从 events_1 中选择 irstream 并通过获取传入和删除的事件,然后从窗口中获取“到达”和“离开”事件。

对于 siddhi,第一个独特的窗口相当简单(我认为?):

从 EventCycle#window.firstUnique('name')[ type=='type' ] 选择名称,输入插入到 NameEvent

但我真的对如何用 Siddhi 替换那个 esper “on pattern”一无所知。我可以为此使用一个“来自每个”的声明,还是需要对 Siddhi 采用不同的方法?

任何帮助我走上正确道路的帮助将不胜感激!

0 投票
1 回答
99 浏览

wso2 - 如何覆盖 SIddhi 的默认序列和模式匹配功能?

我想为 Siddhi 编写一个扩展来改变它查找事件序列和模式的方式,但我不确定我应该覆盖/查看哪些类。有足够熟悉源代码的人给我指点吗?是否有活跃的开发者邮件列表?