当前位置: 首页 > 知识库问答 >
问题:

自定义规则引擎中的esper

弓晔
2023-03-14

共有1个答案

元修然
2023-03-14

几乎没有上下文可供参考,但一个简单的解决方案是简单地保留每个订单和每个价格的最新状态,并将每个规则作为引擎订阅实施。您的引擎可以使用以下EPL语句初始化:

/* Minimal schema-s */
create schema LiveOrder (user string, orderid string, quantity, double, symbol string);
create schema LivePrice (symbol string, price double);

/* create two windows to store the latest order by orderid, and latest price by symbol */
create window LiveOrders.std:unique(orderid) as select * from LiveOrder;
create window LivePrices.std:unique(symbol) as select * from LivePrice;

/* insert data into the windows when data arrives */
insert into LiveOrders select * from LiveOrder;
insert into LivePrices select * from LivePrice;

在这一点上,您将存储所有订单和价格,因此它们可以很容易地根据不同的规则“合并”。如果用户在按数量下单时需要发出警报

select * from LiveOrders where user='U1' and quantity > 100;

若要在任何符号的订单金额超过10000时创建警报,请使用此EPL执行相同操作:

select LiveOrders.symbol as symbol, LiveOrders.quantity*LivePrices as total from LiveOrders
inner join LivePrices on LiveOrders.symbol=LivePrices.symbol
where LiveOrders.quantity*LivePrices > 10000

每当不再需要该警报时,只需删除侦听器并销毁EPL语句。

 类似资料:
  • 授人以鱼,不如授人以渔。Dism++的能力是有限的,无法覆盖的所有用户的需求。因此给程序添加了自定义规则功能,方便高级用户打造自己的专属工具。 创建一个空白的自定义规则文件 我们只需要在Config目录新建一个 Custom*.xml 这样形式的xml文件即可(*表示任何字符串,比如Custom1.xml或者Custom我爱我的家.xml,另外文件以UTF8或者Unicode编码保存)。初始文件内

  • 我正在为我的项目评估一个规则引擎。该项目将基于hadoop。我用DROOLS做了一些POC。基本上,我使用DROOL在映射器一侧。基于此,以下是我的观察和质疑。 1) a)我使用DROOLS在300万对象上启动了规则(大约需要17秒)b)我使用简单的Java对象(大约需要17秒)为没有DROOLS的300万对象使用了与DRL文件中相同的if/else循环逻辑。b大约比a快100倍。这是正常行为吗?

  • 我正在向drools规则引擎插入数据,但我无法理解它是如何处理插入的数据的。插入数据的代码是:

  • 问题内容: 我正在寻找使用C或Python编写的规则引擎,但是如果您知道用另一种语言实现的规则引擎,我将非常高兴知道。 该引擎将用作使房屋自动化的方式,例如当有人离开房间等时关闭电灯等。因此,那里没有“办公室”规则(也就是您在Excel等程序中规则)。 我研究了Java中的Jess和Drools,它们做得很出色。我想知道其他人,并且可能使用的内存少于Java。我听说过Python中的RuleCor

  • 自定义中间有突起的UITabBar,demo中高仿了gogobot app底部不规则的TabBar。 [Code4App.com]

  • 我们已经使用Drools引擎几年了,但是我们的数据已经增长了,我们需要找到一个新的分布式解决方案来处理大量数据。我们有复杂的规则,可以查看几天的数据,这就是为什么Drools非常适合我们,因为我们的内存中只有数据。 你对类似于流口水但分布式/可扩展的东西有什么建议吗? 我确实对这件事进行了研究,但我找不到任何符合我们要求的东西。 谢谢