zoukankan      html  css  js  c++  java
  • Esper系列(十二)Variables and Constants

    功能:变量和常量的定义及应用。

    EPL配置创建

    // 方式一EPAdministrator之后再设置变量及常量
    EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();  
    EPAdministrator admin = epService.getEPAdministrator();  
    ConfigurationOperations conf = admin.getConfiguration();  
    // 变量的定义
    conf.addVariable("abc", String.class, "initVariable");  
    // 常量的定义
    conf.addVariable("constabc", int.class.getName(), 123, true);

    // 方式二先配置好变量及常量,再生成epSerivce对象
    Configuration conf = new Configuration();  
    // 变量的定义
    conf.addVariable("abc", String.class, "initVariable");  
    // 常量的定义
    conf.addVariable("constabc", int.class.getName(), 123, true);  
    EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(conf);

    EPL语法创建

    EPL创建变量和常量格式:

    create [constant] variable variable_type [[]] variable_name 
                    [ = assignment_expression ] [aggregation_declarations]

    格式说明:
    1、constant: 为可选关键字,显式声明则表示声明的是常量,否则声明的是变量;
    2、variable_type和variable_name分别表示变量的数据类型和变量名,变量名必须唯一。variable_type之后的[]表示这是一个数组类型的变量;
    3、assignment_expression: 变量的初始值,如果不声明则表示没有初始值;
    4、可以声明的变量类型:

    variable_type
        :  string
        |  char 
        |  character
        |  bool 
        |  boolean
        |  byte
        |  short 
        |  int 
    10      |  integer 
    11      |  long 
    12      |  double
    13      |  float
    14      |  object
    15      |  enum_class
    16      |  class_name
    17      |  event_type_name

    示例:

    // 创建 integer 类型 sum变量初始值为6
    epAdmin.createEPL("create variable integer varmun = 6 ");
    // 创建 orderBean 事件类型变量 bean
    epAdmin.createEPL("create variable orderBean bean  ");

    修改变量值

    格式:

    on event_type[(filter_criteria)] [as stream_name]
      set variable_name = expression [, variable_name = expression [,...]]

    说明:

    通过接收某类事件并加上一定的过滤条件,将变量重新赋值,并且可以同时为多个变量赋值;

  • 相关阅读:
    云原生体系下 Serverless 弹性探索与实践
    PaddlePaddle:在 Serverless 架构上十几行代码实现 OCR 能力
    manjaro kde系统格式化U盘
    从B站看到的资源网站(确实是很不错,推荐!)
    ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysql 或 manjaro 安装 mariadb
    manjaro kde 我安装后使用到的命令
    思考了许久,博客在未来将会进行的改变(2021-10-03)
    linux 下配置 python源
    ModuleNotFoundError: No module named 'distutils.util'
    mysqlclient 安装失败
  • 原文地址:https://www.cnblogs.com/jianyuan/p/5033152.html
Copyright © 2011-2022 走看看