http://esper.codehaus.org/nesper/documentation/documentation.html

环境配置

  1. NEsper库下载:下载网址
  2. Vs2010环境集成

在项目中添加下载的dll文件下的库即可。

  • Demo展示

事件类:

  1. public class ObjectEvent
  2. {
  3. public String itemName;
  4. public double price;
  5. public ObjectEvent(String itemName, double price)
  6. {
  7. this.itemName = itemName;
  8. this.price = price;
  9. }
  10. public String GetItemName()//命名规则必需正确,大小写不对会导致错误
  11. {
  12. return itemName;
  13. }
  14. public double GetPrice()
  15. {
  16. return price;
  17. }
  18. }
public class ObjectEvent
{
public String itemName;
public double price;
public ObjectEvent(String itemName, double price)
{
this.itemName = itemName;
this.price = price;
}
public String GetItemName()//命名规则必需正确,大小写不对会导致错误
{
return itemName;
}
public double GetPrice()
{
return price;
}
}

事件发送类

  1. class EventSender
  2. {
  3. private static EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider();
  4. static public void objectEventSend()
  5. {
  6. Configuration config = new Configuration();
  7. EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider();
  8. String epl =
  9. "select *,sum(Price) from ConsoleApplicationNesper.ObjectEvent.win:length(2)";
  10. EPStatement statement = epService.EPAdministrator.CreateEPL(epl);
  11. statement.Events += EventListener.objectEventHandle;
  12. ObjectEvent e = new ObjectEvent("shirt", 74.50);
  13. Console.WriteLine("send shirt:74.50");
  14. epService.EPRuntime.SendEvent(e);
  15. ObjectEvent e1 = new ObjectEvent("shoes", 60.50);
  16. Console.WriteLine("send shoes:60.50");
  17. epService.EPRuntime.SendEvent(e1);
  18. ObjectEvent e2 = new ObjectEvent("coat", 70.50);
  19. Console.WriteLine("send coat:70.50");
  20. epService.EPRuntime.SendEvent(e2);
  21. Console.ReadKey();
  22. }
  23. }
class EventSender
{
private static EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider();
static public void objectEventSend()
{
Configuration config = new Configuration();
EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider();
String epl =
"select *,sum(Price) from ConsoleApplicationNesper.ObjectEvent.win:length(2)"; EPStatement statement = epService.EPAdministrator.CreateEPL(epl);
statement.Events += EventListener.objectEventHandle; ObjectEvent e = new ObjectEvent("shirt", 74.50);
Console.WriteLine("send shirt:74.50");
epService.EPRuntime.SendEvent(e);
ObjectEvent e1 = new ObjectEvent("shoes", 60.50);
Console.WriteLine("send shoes:60.50");
epService.EPRuntime.SendEvent(e1);
ObjectEvent e2 = new ObjectEvent("coat", 70.50);
Console.WriteLine("send coat:70.50");
epService.EPRuntime.SendEvent(e2); Console.ReadKey();
}
}

事件监听类

  1. class EventListener
  2. {
  3. static public void objectEventHandle(Object sender, UpdateEventArgs e)
  4. {
  5. EventBean eventResult = e.NewEvents[0];
  6. Console.WriteLine("sumPrice:" + eventResult.Get("sum(Price)"));
  7. Console.WriteLine("received: " + eventResult.Get("ItemName") + ":"
  8. + eventResult.Get("Price"));
  9. //Console.ReadKey();
  10. }
  11. }
class EventListener
{
static public void objectEventHandle(Object sender, UpdateEventArgs e)
{
EventBean eventResult = e.NewEvents[0];
Console.WriteLine("sumPrice:" + eventResult.Get("sum(Price)"));
Console.WriteLine("received: " + eventResult.Get("ItemName") + ":"
+ eventResult.Get("Price"));
//Console.ReadKey();
}
}

运行结果

  1. 1---object event example
  2. send shirt:74.50
  3. sumPrice:74.5
  4. received: shirt:74.5
  5. send shoes:60.50
  6. sumPrice:135
  7. received: shoes:60.5
  8. send coat:70.50
  9. sumPrice:131
  10. received: coat:70.5

NEsper事件处理 z的更多相关文章

  1. 【Python】使用torrentParser1.03对多文件torrent的分析结果

    Your environment has been set up for using Node.js 8.5.0 (x64) and npm. C:\Users\horn1>cd C:\User ...

  2. 事件流处理框架NEsper for .NET z

    复合事件处理(Complex Event Processing)介绍提到了开源的Esper,NEsper 是一个事件流处理(Event Stream Processing,ESP)和复杂事件处理(Co ...

  3. NEsper z

    对实时信息分析和处理,常常需要客户应用程序的开发相应功能.一般地,这些功能需要提供以下的处理流程,分析获取的数据,筛选数据,提取出有用的信息,然后将其通过特定的形式展现出来.由于具体实时信息的高并发性 ...

  4. NESPER的大体结构 z

    NEsper从内容上分为两块,NEsper的核心NEsper.dll和NEsper.IO.dll. (1)NEsper的核心包包含了EPL语法解析引擎,事件监听机制,事件处理等核心模块. (2)NEs ...

  5. NEsper使用的事件类型 z

    NEsper使用的事件类型来描述事件的类型信息.你的应用在启动时可能预先配置定义事件类型,或者在运行时通过API或EPL语法动态的增加事件类型. EPL中的create schema 的语法允许在运行 ...

  6. NEsper Nuget包

    Esper是专门进行复杂事件处理(CEP)的流处理平台,Java版本为Esper,.Net版本为NEsper.Esper & NEsper可以方便开发者快速开发部署处理大容量消息和事件的应用系 ...

  7. Qt Quick鼠标事件处理、键盘、计时器

    在<Qt Quick 事件处理之信号与槽>中介绍了 QML 中怎样使用内建类型的信号以及怎样自己定义信号,这次我们来看看怎样处理鼠标.键盘.定时器等事件.这些时间在处理时,一般是通过信号来 ...

  8. Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触

    前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来.正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remoting的使用.关于这个主题,在 ...

  9. 【转】Microsoft .Net Remoting之Remoting事件处理全接触

    Remoting事件处理全接触 前言:在Remoting中处理事件其实并不复杂,但其中有些技巧需要你去挖掘出来.正是这些技巧,仿佛森严的壁垒,让许多人望而生畏,或者是不知所谓,最后放弃了事件在Remo ...

随机推荐

  1. json 包含字段及函数的写法

    在javascript中写类有多种方式: 1.function()中嵌套function; 2.prototype的方式 ,3.json的方式,如下: <script language=&quo ...

  2. 在VS中手工创建一个最简单的WPF程序

    如果不用VS的WPF项目模板,如何手工创建一个WPF程序呢?我们来模仿WPF模板,创建一个最简单的WPF程序. 第一步:文件——新建——项目——空项目,创建一个空项目. 第二步:添加引用,Presen ...

  3. 常用Oracle SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  4. git 提交

    git rebase -i 在使用git开发的时候经常会面临一个常见的问题.多个commit 需要合并为一个完整的commit提交. 合并多个commit为一个完整的commit 我先基于develo ...

  5. pywinauto简单介绍

    Pywinauto是基于Python开发的,用于自动化测试的脚本模块,主要操作于Windows标准图形界面.它可以允许你很容易的发送鼠标.键盘动作给Windows的对话框和控件. 其中,最主要功能为对 ...

  6. SQL语句中使用条件逻辑

    select name, sal, case when sal >= 4000 then 'Good' when sal <= 2000 then 'Bad' else 'Ok' end ...

  7. Python 学习日志(一)

    第一天: (一)安装Python3.3: (二)试运行: 1.在IDLE中输入:print("Hello,world"); //回车查看结果 2.使用"File" ...

  8. tomcat+apache 实现负载均衡之一:同一台电脑部署2个以上tomcat

    1.  下载tomcat 8.0.17 http://apache.fayea.com/tomcat/tomcat-8/v8.0.17/bin/apache-tomcat-8.0.17.tar.gz ...

  9. CELERY里,这个WARNING如何消除?

    原来命令行里有提示,保证用-n给与不同的名字即可. 比如: [program:celeryd]command=/usr/local/python27/bin/celery worker --app=s ...

  10. QStringRef可以提高性能,下次注意使用;QPair方便了语法,函数可以一次返回多个返回值,方便使用

    而且QPair从此与各种QMap容器联系了起来,会非常好用.甚至QList也可以成双成对的使用元素了: QList<QPair<int, double> > list;list ...