【问题标题】:How to find stale Infinispan / Jboss Cache objects?如何找到陈旧的 Infinispan / Jboss Cache 对象?
【发布时间】:2013-03-13 04:28:59
【问题描述】:

主题就是问题。

场景:即使有注销链接,某些用户也没有正确注销。他们立即使用新标签并再次登录。这次创建了一个新的 Cache 对象,而旧的对象并没有被破坏。

【问题讨论】:

    标签: caching jboss jboss5.x infinispan


    【解决方案1】:

    首先,您可以set a default lifespanmaxIdle 使所有实体超时,这样它们就不会长时间保持陈旧状态。

    但是,要回答您的问题...您可以使用infinispan-query 模块:

         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-query</artifactId>
            <version>5.2.1.Final</version>
         </dependency>
    

    这使用休眠搜索和 apache lucene 来查询您的 infinispan 缓存。

    要使用此功能,您需要使用 @org.hibernate.search.annotations.Field 注释要搜索的字段,并使用 @org.hibernate.search.annotations.Indexed 注释类。

    您的 infinispan 缓存还需要索引 &lt;indexing enabled="true" indexLocalOnly="false" /&gt;(本地或分布式 - 请参阅 indexLocalOnly 属性)。

    然后您可以使用以下内容查询您的缓存:

    import org.apache.lucene.search.Query;
    import org.hibernate.search.query.dsl.QueryBuilder;
    import org.infinispan.Cache;
    import org.infinispan.query.CacheQuery;
    import org.infinispan.query.Search;
    import org.infinispan.query.SearchManager;
    
    [...]
    
    public List<YourEntity> searchEntities( String fieldValue ) {
      SearchManager searchManager = Search.getSearchManager( cache );
      QueryBuilder queryBuilder = searchManager.buildQueryBuilderForClass( YourEntity.class ).get();
      // this chain will change depending on what you are querying
      Query luceneQuery = queryBuilder.keyword().onField( "fieldName" ).matching( fieldValue ).createQuery();
      // use either searchManager.getClusteredQuery with local index, or a searchManager.getQuery with clustered index
      CacheQuery cacheQuery = searchManager.getQuery( luceneQuery, YourEntity.class );
      //noinspection unchecked
      return (List)cacheQuery.list();
    }
    

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 2019-04-04
      • 2018-01-25
      • 2015-11-29
      • 1970-01-01
      • 2011-06-02
      • 2021-11-07
      • 2018-11-12
      • 2023-03-10
      相关资源
      最近更新 更多