zoukankan      html  css  js  c++  java
  • Esper系列(七)数据缓存、外部事件应用(静态方法)

    LRU Cache

    功能:最近最少使用策略。


    数据库查询缓存应用配置:

    <database-reference name="mydb">
    ... configure data source or driver manager settings...
        <lru-cache size="1000"/>
    </database-reference>

    方法查询缓存配置:

    <method-reference class-name="MyFromClauseWebServiceLib">
      <lru-cache size="1000"/>
    </method-reference> 

    Expire Time Cache

    功能:通过配置设置查询结果的存活期,并定期清理过期的查询结果。

    数据库查询缓存应用配置:

    <database-reference name="mydb">
    ... configure data source or driver manager settings...
        <expiry-time-cache max-age-seconds="60" purge-interval-seconds="120" />
    </database-reference>

    方法查询缓存配置:

    <method-reference class-name="com.mycompany.MyFromClauseLookupLib">
      <expiry-time-cache max-age-seconds="10" purge-interval-seconds="10" ref-type="weak"/>
    </method-reference>

    例子:

    文件:event.xml

    <?xml version="1.0" encoding="UTF-8"?>
     
    <esper-configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.espertech.com/schema/esper"
        xsi:noNamespaceSchemaLocation="esper-configuration-5-0.xsd">
        
        <auto-import import-name = "cn.chenx.esper.xml.MyEvent" />
        
        <method-reference class-name="MyEvent">
    10            <lru-cache size="1000"/>
    11      </method-reference> 
    12     
    13  </esper-configuration>

    文件名:orderMainTest.java

    // 添加配置(包所在路劲),方面后面的引用自动添加包名前缀
    Configuration config = new Configuration();
    config.addEventTypeAutoName("cn.chenx.esper.xml");
    URL url = orderMainTest.class.getResource("event.xml");
    config.configure(url);
     
    EPServiceProvider epServiceProvider = EPServiceProviderManager
            .getDefaultProvider(config);
    EPAdministrator epAdmin = epServiceProvider.getEPAdministrator();
    10   
    11  String epsql = "select me.key as result from orderEvent as oe,method:MyEvent.getEvent(oe.salary) as me  ";

    说明:

    event.xml文件中的class-name="MyEvent",这里的MyEvent就是事件定义类。

    外部事件应用(静态方法)

    Joining Method Invocation Results

    格式:

    method:class_name.method_name[(parameter_expressions)]

    说明:

    method:固定关键字,class_name:类名,method_name:类中的静态方法,parameter_expressions:静态方法中的参数。

    功能:

    通过外部的静态方法构建事件源,需注意的是要结合其它事件使用。

    应用场景:对数据库中的数据按条件查询等。

    例子:

    文件名:MyEvent.java

    public class MyEvent {
       
        public static orderBean getEvent(int salary){
            orderBean bean = new orderBean();
           
            if ((salary % 2) == 0){
                bean.setKey("chenx1");
                bean.setValue(111);
            }else {
    10              bean.setKey("chenx2");
    11              bean.setValue(222);
    12          }
    13          return bean;
    14      }   
    15  }

    文件名:orderMainTest

    // 添加配置(包所在路劲),方面后面的引用自动添加包名前缀
    Configuration config = new Configuration();
    config.addEventTypeAutoName("cn.chenx.esper.method");
           
    //
    EPServiceProvider epServiceProvider = EPServiceProviderManager
            .getDefaultProvider(config);
    EPAdministrator epAdmin = epServiceProvider.getEPAdministrator();
           
    10  ConfigurationOperations configOper = epAdmin.getConfiguration();
    11  configOper.addImport(MyEvent.class);
    12         
    13  String epsql = "select me.key as result from orderEvent as oe,method:MyEvent.getEvent(oe.salary) as me  ";
  • 相关阅读:
    关于EPCS的读写
    HPD的作用和应用事项
    debug命令的使用
    寄存器中cs,ds,ss,es的区别
    Oracle的物化视图
    汇编helloword代码
    SSL单双向验证原理
    中断向量表小计
    PC机的内存分配空间小记
    汇编中基本的数据类型
  • 原文地址:https://www.cnblogs.com/jianyuan/p/5007437.html
Copyright © 2011-2022 走看看