⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cache.java

📁 采用JAVA开发
💻 JAVA
字号:
package com.gctech.sms.voice.common;
import java.util.*;
import org.apache.log4j.Logger;
import com.gctech.sms.voice.dao.*;
import com.gctech.sms.voice.*;
/**
 * 缓存一些数据,比如大小类别
 * 以及top10,或者用户信息
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author lijz@gctech.com.cn
 * @version 1.0
 */
public class Cache
{

  private Timer timer = new Timer(true);

  Map bMap = new HashMap(6);
  Map sMap = new HashMap(100);
  VoiceFacade f = new VoiceFacade();
  VoiceValueObject[] jfdTop10 = null;
  VoiceValueObject[] userTop10 = null;


  private static Logger logger = Logger.getLogger(Cache.class);
  private static Cache cache = new Cache();

  public Cache()
  {
    init();
  }

  private void init()
  {

    loadCataLog();
    this.reloadVoiceTopFromJFD();
    this.reloadVoiceTopFromUser();
    timer.schedule(new LoadTop10(this),0,1000*Config.instance().getReloadPeriod());
  }

  public static Cache instance()
  {
    return cache;
  }

  public void stopLoad()
  {
    timer.cancel();
  }
  private void loadCataLog()
  {
    try
    {
      List bList = f.allBigCatalog();
      BigCatalogValueObject bvo = null;
      for(int i=0;i<bList.size();i++)
      {
        bvo = (BigCatalogValueObject)bList.get(i);
        bMap.put(bvo.getId(),new SimpleValue(bvo.getId().intValue(),bvo.getName()));
      }
      logger.info("load big catalog ok");
      List sList = f.allSmallCatalog();
      SmallCatalogValueObject svo = null;
      for(int i=0;i<sList.size();i++)
      {
        svo = (SmallCatalogValueObject)sList.get(i);
        sMap.put(svo.getId(),new TwoKeyValue(svo.getId().intValue(),svo.getBigId().intValue(),svo.getName()));
      }

    }
    catch(VoiceException ve)
    {
      logger.fatal("装载类别失败",ve);
    }
  }

  public SimpleValue[] allBigCatalog()
  {
    return (SimpleValue[])bMap.values().toArray(new SimpleValue[bMap.size()]);
  }

  /**
   * 暂时不用,写在静态页面上
   * @param bigId int
   * @return SimpleValue[]
   */
  public SimpleValue[] allSmallCatalog(int bigId)
  {
    throw new UnsupportedOperationException();
  }

  public SimpleValue getSmallCatalog(Integer id)
  {
    return (SimpleValue)sMap.get(id);
  }

  public int getBigCatalog(Integer smallId)
  {
    TwoKeyValue tv = (TwoKeyValue)this.getSmallCatalog(smallId);
    return tv.getSid();
  }



  /**
   * 得到top10
   * @param type 1,吉芙得公司提供,2,用户自定义
   * @return
   */
  public VoiceValueObject[] voiceTop10(int type)
  {
    if(type==1) return jfdTop10;
    else return userTop10;
  }

  private void reloadVoiceTopFromJFD()
  {
    try
    {
      this.jfdTop10 = f.getVoiceByBigCatalog(null,1,10);
    }
    catch(VoiceException ex)
    {
      logger.fatal("状态JFD Top10失败",ex);
    }

  }

  private void reloadVoiceTopFromUser()
  {
    try
    {
      this.userTop10 = f.getVoiceByUser(1,10);
    }
    catch(VoiceException ex)
    {
      logger.fatal("状态User Top10失败",ex);
    }

  }


  class LoadTop10 extends TimerTask
  {
    private Cache cache = null;
    public LoadTop10(Cache cache)
    {
      this.cache = cache;
    }

    public void run()
    {

      cache.reloadVoiceTopFromJFD();
      cache.reloadVoiceTopFromUser();
    }
  }





public static void main(String[] args) {
//  SimpleValue  vo = Cache.instance().getSmallCatalog(new Integer(1));
//  Cache.instance().reloadVoiceTopFromJFD();
//  System.out.println(Cache.instance().userTop10.length);
  DBHelper.isDebug = true;
// System.out.println(Cache.instance().getSmallCatalog(new Integer(0)));
//  VoiceValueObject[] vos = Cache.instance().userTop10;
//  for(int i =0 ;i<vos.length;i++)
//  {
//    System.out.println(vos[i].getId()+":"+vos[i].getUserName());
//  }



}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -