`

数据组装与缓存例子

    博客分类:
  • RUBY
 
阅读更多
codeing by 志远.于

module Extract
  def get_industries_child(list)
    if list.present?
      list.map{|c|
          {
            child_name:c.name,
            child_name_cn:c.name_cn,
            industry_id:c.industry_id,
            id:c.id
          }
      }
    else
      []
    end
  end

  #行业及产品类型
  def get_industries_list
    Industry.all(:include => :products).map {|item|
      {
        parent_name:item.name,
        parent_name_cn:item.name_cn,
        id:item.id,
        children:self.get_industries_child(item.products)
      }
    }
  end

  def get_interests_child(list)
    if list.present?
      list.map{|c|
          {
            child_name:c.name,
            child_name_en:c.name_en,
            audience_id:c.audience_id,
            parent_id:c.parent_audience_id
          }
      }
    else
      []
    end
  end

  #兴趣标签获取兴趣及子项
  def get_interests_list
    BshareAudience.find_all_by_parent_audience_id(0).map {|item|
      {
        parent_name:item.name,
        parent_name_en:item.name_en,
        audience_id:item.audience_id,
        parent_id:item.parent_audience_id,
        children:self.get_interests_child(BshareAudience.find(:all, :conditions => ["parent_audience_id = ? ", item.audience_id]))
      }
    }
  end
 
  #缓存兴趣列表
  def get_interests_cache
    self.cache("INTERESTS_CACHE"){self.get_interests_list}
  end

  #缓存媒体列表
  def get_interests_cache
    self.cache("INDUSTRY_CACHE"){self.get_industries_list}
  end

  def cache(key, expires_in=5.minute, &get_val_block)
    _cache = Rails.cache
    _key = key.to_sym
    _val = _cache.fetch(_key)
    if _val.nil?
      _val = get_val_block.call
      _cache.write(_key, _val, expires_in: expires_in)
    end
    _val
  end
 
end
分享到:
评论

相关推荐

    计算机组装与维护教学课件认识计算机的工作原理.pptx

    计算机组装与维护是IT技术的基础课程,它涵盖了从硬件组装到软件配置的全过程。本教学课件主要聚焦在“认识计算机的工作原理”这一主题,旨在帮助学生深入理解计算机内部是如何协同工作的。 首先,计算机由五大核心...

    计算机组装与维护考试题(选修课).pdf

    但尽管如此,还是可以尝试整理出一些与计算机组装与维护相关的知识点。 计算机组装与维护是一门涉及硬件和软件知识的实践课程,学习本课程的目的是让学生掌握计算机硬件的结构、各部件的功能以及如何组装和维护一台...

    计算机组装与维护试题及答案 (3).pdf

    【计算机组装与维护知识点】 1. **CPU主频计算**:CPU的工作频率(主频)由外频和倍频决定,如题目中的例子,如果CPU的外频是100MHz,倍频是17,那么CPU的主频是100MHz * 17 = 1.7GHz。 2. **静电防护**:在拆装...

    计算机组装与维护试题及答案归纳.pdf

    【计算机组装与维护知识点】 1. **CPU主频计算**:CPU的工作频率(主频)由外频和倍频决定,如题目中的例子,如果CPU的外频是100MHz,倍频是17,那么CPU的主频是100MHz * 17 = 1.7GHz。 2. **静电防护**:在操作...

    2022年计算机组装与维护试题及答案.docx

    【计算机组装与维护知识点】 1. **CPU主频计算**:CPU的工作频率(主频)由外频和倍频决定,如题目中的例子,当外频是100MHz,倍频是17时,主频是100MHz * 17 = 1.7GHz。 2. **静电防护**:在操作计算机硬件时,应...

    SSH框架配置例子

    在SSH配置中,Spring负责事务管理、数据库连接池管理、业务逻辑组件的组装以及与Struts和Hibernate的集成。 Struts 2作为MVC(模型-视图-控制器)框架,主要处理HTTP请求并管理用户界面。Struts 2.3.16.3版本修复了...

    Hibernate3.3.1+Spring2.5.5+Struts2 2.0.1.2例子

    - **Hibernate**与Spring的整合,使得我们可以利用Spring的`HibernateTemplate`或`SessionFactoryBean`进行透明化的数据库操作,Spring会处理数据源配置、事务管理以及实体的生命周期管理。 - **Struts2**与Spring...

    ssh框架例子

    Hibernate支持懒加载、级联操作、缓存策略等特性,提高了数据访问效率。在SSH框架中,Spring可以管理和控制Hibernate的SessionFactory,进一步简化了数据库操作的管理。 在SSH框架集成的例子中,通常会首先配置...

    Spring.Net + NHibernate 入门例子

    开发者可以定义组件配置,声明它们之间的依赖,然后由Spring.NET容器负责实例化和组装这些组件。这使得代码更加灵活、可测试和易于维护。Spring.NET还提供了AOP(面向切面编程)支持,允许在不修改业务代码的情况下...

    云盘项目 基于hadoop集群.zip

    在实现云盘项目时,还需要考虑性能优化,比如通过缓存技术减少对HDFS的频繁访问,使用Hadoop的Block locality特性提高数据读取速度,以及使用Hadoop的Combiner优化MapReduce的计算效率。 此外,由于Hadoop集群可能...

    09 谷粒订单提交1

    代码示例展示了如何通过引入`CartService`来获取购物车中被选中的商品,这里利用了Redis缓存存储购物车数据,提高了数据读取效率。商品列表获取后,会被组装成订单详情列表`orderDetailList`,以便后续处理。 支付...

    实训2 认识微机的主要部件实训报告

    首先,CPU是微机的大脑,Intel(R) Core(TM) i3-2120是其中的一个例子,具有LGA 1155接口,一级缓存为2×64KB,二级缓存为2×256KB,主频3.1GHz,前端总线为DMI 5.0GT/s。CPU的工作效率和性能与它的核心数、频率、...

    计算机的组成原理一.pdf

    实验和实践活动是这部分教学的重要环节,通过动手组装计算机模型、观察各部件协同工作的过程,学生可以更直观地理解各功能部件的作用。 数据的表示是计算机处理信息的基础,是计算机组成原理中的核心内容之一。课程...

    计算机常用名词的英文缩写.docx

    13. Cache:高速缓存,是CPU和主内存之间的临时存储,用来提高数据访问速度。 14. PCI(Peripheral Component Interconnect):局部总线,一种用于扩展计算机功能的高速接口标准。 15. VCD(Video Compact Disc)...

    Struts+Spring+Hibernate框架搭建

    - 组装模型对象以供视图层展示; - 执行UI验证。 应当注意的是,表现层不应包含与数据库交互的代码或复杂的业务逻辑。这些应该放在其他层中处理。 ###### 1.2.2 持久层 持久层负责处理数据的存储和检索,它是Web...

    Java核心技术II(第8版)

    4.7.1 被缓存的行集 4.8 元数据 4.9 事务 4.9.1 保存点 4.9.2 批量更新 4.9.3 高级SQL类型 4.10 Web与企业应用中的连接管理 4.11 LDAP介绍 4.11.1 配置LDAP服务器 4.11.2 访问LDAP目录信息 第五章 国际化 5.1 ...

    有关计算机试题和答案.pdf

    计算机组装与维护试题涉及到计算机硬件的基本知识,涵盖了CPU、主板、内存、显卡、电源、硬盘等关键组件。以下是对这些知识点的详细说明: 1. CPU的主频计算:CPU的工作频率(主频)是外频乘以倍频。在这个例子中,...

    大学计算机网络(6.网络层)

    ### 三、虚电路服务与数据报服务 1. **虚电路服务**: - **概念**:在通信开始之前建立一个逻辑连接,类似于电话呼叫的过程。 - **特点**: - 连接建立:通信前需先建立连接。 - 顺序传输:数据包按照发送顺序...

    计算机水平考试模拟试题.doc

    数据处理与科学计算** - **人事档案管理、财务管理软件**:这类软件属于数据处理应用,用于管理和处理大量的结构化数据。 - **自动生产线**:自动生产线是过程控制的一个典型例子,通过计算机对生产过程进行监控和...

Global site tag (gtag.js) - Google Analytics