zoukankan      html  css  js  c++  java
  • esper(4-2)-Category Context

    语法:

    create context context_name
    group [by] group_expression as category_label
    [, group [by] group_expression as category_label]
    [, ...]
    from stream_def

    例子:

    create context esbtest group by id<0 as low, group by id>0 and id<10 as middle,group by id>10 as high from com.ebc.category.User
    context esbtest select context.id,context.name,context.label, amount from com.ebc.category.User
    
    --监听器
    Console.log("context.name=" + event.get("name") + ", " +
                                "context.id=" + event.get("id") + ", " +
                                "context.label=" + event.get("label"));
    
    --发送事件
    User u1 = new User(1,20);
    Console.log("sendEvent: id={},amount={}",u1.getId(),u1.getAmount());
    runtime.sendEvent(u1);
    User u2 = new User(0,30);
    Console.log("sendEvent: id={},amount={}",u2.getId(),u2.getAmount());
    runtime.sendEvent(u2);
    User u3 = new User(11,20);
    Console.log("sendEvent: id={},amount={}",u3.getId(),u3.getAmount());
    runtime.sendEvent(u3);
    
    User u4 = new User(-1,40);
    Console.log("sendEvent: id={},amount={}",u4.getId(),u4.getAmount());
    runtime.sendEvent(u4);

    输出

    sendEvent: id=1,amount=20
    context.name=esbtest, context.id=1, context.label=middle
    sendEvent: id=0,amount=30
    sendEvent: id=11,amount=20
    context.name=esbtest, context.id=2, context.label=high
    sendEvent: id=-1,amount=40
    context.name=esbtest, context.id=0, context.label=low

    id=0的事件,没有触发监听器,因为context里的三个category没有包含id=0的情况,所以这个事件就被排除掉了。

  • 相关阅读:
    常用JVM配置参数
    JVM运行机制
    go 奇技淫巧
    如何实现LRU(最近最少使用)缓存淘汰算法?
    数组下标为什么是0而不是1?
    ServiceMesh 演化进程
    CAP定理详解
    vscode 调试配置信息
    Ubuntu 断网问题解决
    ubuntu 关闭指定占用端口
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/10601495.html
Copyright © 2011-2022 走看看