NEsper事件处理Demo

本文介绍了如何在Visual Studio 2010中集成NEsper库,进行事件处理。首先,提供了NEsper库的下载链接,然后详细讲解了在VS2010环境下如何配置和使用该库,最后通过一个Demo展示了NEsper的EPL(Event Processing Language)在事件处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于Esper比较详细的教程基本都是Java版本的,通过个人几天的努力,终于实现了.Net版本的,下边是具体代码,原理就不详细介绍了,仅供大家参考和学习。
  • 环境配置
  1. NEsper库下载:下载网址
  2. Vs2010环境集成
在项目中添加下载的dll文件下的库即可。
  • Demo展示
事件类:

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;
        }
    }


事件发送类
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();
        }
}


事件监听类
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---object event example
send shirt:74.50
sumPrice:74.5
received: shirt:74.5
send shoes:60.50
sumPrice:135
received: shoes:60.5
send coat:70.50
sumPrice:131
received: coat:70.5
okay,至此,所有工作完成。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值