esper 事件引擎,各种事件类型示例代码

原创文章 转载请注明出处

package com.hp.iot.engine.esper;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPRuntime;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.client.UpdateListener;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class EsperTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();

        EPAdministrator admin = epService.getEPAdministrator();
        Map<String, Object> address = new HashMap<String, Object>();
        Map<String, Object> Person = new HashMap<String, Object>();
        Map<String, Object> children = new HashMap<String, Object>();
        children.put("name", String.class);
        children.put("age", int.class);

        admin.getConfiguration().addEventType("children_test", children);

        address.put("road", String.class);
        address.put("buildnum", int.class);
        address.put("host", String.class);
        admin.getConfiguration().addEventType("address_test", address);

        Person.put("name", String.class);
        Person.put("age", int.class);
        Person.put("addr", "address_test");
        Person.put("children", "children_test[]");
        admin.getConfiguration().addEventType("person_test", Person);

        String epl = "select * from person_test where addr.road=\"r1\"";

        EPStatement state = admin.createEPL(epl);
        state.addListener(new UpdateListener() {

            public void update(EventBean[] paramArrayOfEventBean1, EventBean[] paramArrayOfEventBean2) {
                // TODO Auto-generated method stub
                System.out.println("test %%%%%%%%%%%%%");
                String json = JSON.toJSONString(paramArrayOfEventBean1[0]);
                System.out.println("json %%%%%%%%%%%%%" + json);

            }
        });

        String epl2 = "select * from person_test where children[1].name=\"ch2\"";

        EPStatement state2 = admin.createEPL(epl2, "ep2", null);
        System.out.println("----------------------" + state2.getText());
        state2.addListener(new UpdateListener() {

            public void update(EventBean[] paramArrayOfEventBean1, EventBean[] paramArrayOfEventBean2) {
                // TODO Auto-generated method stub
                System.out.println("index ############");
                String json = JSON.toJSONString(paramArrayOfEventBean1[0]);
                System.out.println("json ############" + json);

            }
        });

        String epl3 = "select * from person_test";
        EPStatement state3 = admin.createEPL(epl3, "epl3", null);
        System.out.println("----------------------" + state2.getText());
        state2.addListener(new UpdateListener() {

            public void update(EventBean[] paramArrayOfEventBean1, EventBean[] paramArrayOfEventBean2) {
                // TODO Auto-generated method stub
                System.out.println("------------------epl 3");
            }
        });

        EPRuntime runtime = epService.getEPRuntime();

        Map<String, Object> add = new HashMap<String, Object>();
        add.put("road", "r1");
        add.put("buildnum", 2);
        add.put("host", "host1");

        Map<String, Object> ch1 = new HashMap<String, Object>();
        ch1.put("name", "ch1");
        ch1.put("age", 2);

        Map<String, Object> ch2 = new HashMap<String, Object>();
        ch2.put("name", "ch2");
        ch2.put("age", 2);

        Map[] child = new HashMap[2];
        child[0] = ch1;
        child[1] = ch2;

        Map<String, Object> per = new HashMap<String, Object>();
        per.put("name", "roger");
        per.put("age", 2);
        per.put("addr", add);
        per.put("children", child);
        runtime.sendEvent(per, "person_test");

    }

}
时间: 2024-10-31 22:07:41

esper 事件引擎,各种事件类型示例代码的相关文章

左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用

文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy2012Email:[email protected]qq:    1046011462 一.场景如果 如果有博客系统中须要实现例如以下功能: 系统中用户公布文章.改动文章.删除文章时,须要一些相关的操作须要运行. 公布文章后,给好友发送邮件通知.给用户加积分,对文章做全文索引. 改动文章后,给好友发送邮

《C#高级编程》委托、事件的示例代码

运行结果: Program.cs 1 using System; 2 3 namespace Wrox.ProCSharp.Delegates 4 { 5 class Program 6 { 7 static void Main() 8 { 9 var dealer = new CarDealer(); 10 11 var michael = new Consumer("Michael"); 12 dealer.NewCarInfo += michael.NewCarIsHere; 1

c# 使用hook来监控鼠标键盘事件的示例代码

如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键"来启动它. 钩子(hook),通俗的讲,她可以捕获到你的键盘和鼠标的相关操作消息. 关于hook的相关代码网上一搜一箩筐,这是整理起来比较完善和使用最方便的. //Declare wrapper managed POINT class. [StructLayout(LayoutKind.Sequenti

javascript权威指南第13章 事件示例代码

html 部分 <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title> </head> <body> <!--事件冒泡 与事件捕捉 顺序相反--> <!--事件冒泡 1 <div> 2 <body> 3 <html> 4 document --> <!--事件捕捉 1.docume

【IOS 开发】IOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

一. IOS 项目简介 1. IOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源; (1) HelloWorld 目录 HelloWorld 目录介绍 : -- 命名规则 : 该目录名称与 IOS 项目名称相同, 是主目录; -- 存放内容 : IOS 项目的 源码文件, 界面设计文件, 资源文件都存放在该目录下; -- 源文件 : Objective C 的 .m 和

SQL Server 扩展事件(Extented Events)从入门到进阶(4)——扩展事件引擎——基本概念

本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 在第一二节中,我们创建了一些简单的.类似典型SQL Trace的扩展事件会话.在此过程中,介绍了很多扩展事件基础组件,包括事件.谓词.操作和目标.本节,将对扩展事件引擎.架构和基本组件做更加深入的了解.通过这些讲解,可以大概了解到为什么扩展事件相对于SQL Trace来说更加低开销.另外,还会延时如何设计事件会话从而最小化事件收集过程中的不必要开销,即使这些事件会话会很复杂. 事件数据收集生命周期: 扩

事件和弱事件的示例解说

1 using System; 2 using System.Windows; // 实现弱事件需要引用 WindowsBase 程序集 3 4 namespace 事件和弱事件的示例解说 5 { 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 var dealer = new CarDealer(); // 这个类包含一个事件处理器,以及对其的调用方法 11 12 var michael = new Consumer("

《JAVASCRIPT高级程序设计》事件处理程序和事件类型

一.事件流 谈到事件,首要要理解事件流的概念:事件流是指从页面接受事件的顺序:“DOM2级事件”规定事件流包括三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段.目前大部分的浏览器的事件流是事件冒泡,即最开始由具体的元素接收事件,然后逐级传播到不具体的节点,直到传播到windows对象:另一种事件流是事件捕获,目前使用得比较少,是指文档对象先接收到事件,然后逐级向下,一直传播到事件的实际目标. 二.事件处理程序 1.两种表示方式 <input type="button" valu

事件(四):事件类型

事件类型 web浏览器中可能发生的事件有很多类型:UI事件:当用户与页面上的元素交互时触发:焦点事件:当元素获得或失去焦点时触发:鼠标事件:当用户通过鼠标在页面上执行操作时触发:滚轮事件:当使用鼠标滚轮(或类似设备)时触发:文本事件:当在文档中输入文本时触发:键盘事件:当用户通过键盘在页面上执行操作时触发:合成事件:当为IME(input method editor,输入法编辑器)输入字符时触发:变动事件:当底层dom结构发生变化时触发.变动名称事件:当元素或属性名变动时触发.此类事件已经被废弃