姓名:
 专业:
 电话:
 备注:

 

 最新动态

详细新闻

 
用异步缓存确保高流量网页及时更新与低错误率
时间:2009-06-08   来源:五月花专修学院  作者:55rc   浏览:299/次

     我通常的WEB开发中,有时我们会碰以这种情况,一个页面有很多模块组成,而这些模块之间是不关链的,就像一个网站的首页,里面有很多块块,有些是读新闻的,有些是读产品信息,还有一些部分是读论坛,博客之类的地方.而这个页面的要求是很高的,无论在什么情况下都要保证页面是可以正确打开的(当然服务器故障是没有办法的).而且网站的流量很大.
     通常这样的页面是需要生成静态页来保证页面正确的,但是这种做法会有很大的问题,如果网站中一个小块异常了,会导致整个页面不更新.

     现在我们给出这样一个解决方案:页面分两级缓存,一级为内存缓存,二级为文件缓存.这里的文件缓存是起辅助做用的,有一种特殊的情况,一个ASP.NET应用程序池是会重新初始化的,初始化完过后,内存数据会被清空,这个时候如果我们直接去执行数据访问程序,那么我们不能保证当时情况下程序的正确性和性能(对于程序调用过多的页面来说,执行速度慢,大量的并发请求会导致服务器崩溃).

       也就是说,对于页面程序来说,如果程序一执行会先去读内存,如果发现内存为空,那么改去读相应的缓存文件,如果文件还没生成,那么再执行程序(这种情况只在程序在服务器上第一运行是发生).

      为了确保页面更新及时,这里需要异步缓存,也就是说为每一个模块起一个线程来维护,如果线程方法执行成功,那么更新内存中的内容.这里建议把文件更新另起一个线程式,因为文件更新可以时间间隔长一起,结约系统资源.例如,每个模块内存更新速度是20秒,那么文件的可以设为5分钟.

      下面给出一段代码,这个主要是用于缓存处理的.....

       + expand sourceview plaincopy to clipboardprint?

       

C#代码
  1. using System;     
  2. using System.Data;     
  3. using System.Configuration;     
  4. using System.Linq;     
  5. using System.Xml.Linq;     
  6. using System.IO;     
  7. using System.Collections.Generic;     
  8. using System.Threading;     
  9. using System.Diagnostics;     
  10.     
  11. ///      
  12. /// 本类主要负责处理根把相关参数设置缓存结果     
  13. ///      
  14. public class CacheSvr     
  15. {     
  16.     public delegate string ProcessDataDelegate(params object[] args);     
  17.     public static string cacheDir = "D:\tmpFile";     
  18.     public static Dictionary<stringstring> cacheTable = new Dictionary<stringstring>();     
  19.     public static ReaderWriterLockSlim lockx = new ReaderWriterLockSlim();     
  20.     public static Dictionary<string, Thread> threadTable = new Dictionary<string, Thread>();     
  21.     
  22.     public CacheSvr()     
  23.     {     
  24.         //     
  25.         // TODO: Add constructor logic here     
  26.         //     
  27.     }    
  28.   
  29.     #region 文件缓存逻辑     
  30.     ///      
  31.     /// 保存程序执行结果致文件     
  32.     ///      
  33.     /// <param name="thisDelegate">所要执行的方法     
  34.     /// <param name="fileName">文件名     
  35.     /// <param name="args">参数列表     
  36.     ///    
5
 
  • 追加500万设备,新增四大实训车间,保障学生实践操作能力
  • 数控分院七大类型车间设备纵览
  • 建立稳固就业基地,确保学生妥善安置,成都就业局胡超副局长来院参观
  • 20台“大家伙”入住汽修分院
  • 一览汽修分院五大实习操作车间
  • 省人大领导夸我院办学实、教学质量高
  • 他放弃二本高校,毅然选择五月花
  • 成都广播电视大学五月花杯数控技能大赛取得圆满成功
  • 从教室到公园,五月花特色晨读纪实
  • 一个新生所看到的五月花
  • 美丽五月花—带你畅游华西公园
  • 学生公寓
  • 教学楼
  • 首届艾普杯“璀璨新星”总决赛暨迎新晚会成功举行
  • 魅力青春 秀出真我——第三届魅力五月花“惠普杯”阳光男生决赛
  • 巨大阵容,寒冬里的盛会——五月花第二届魅力女生风采大赛总决赛隆重举行
  • 五月花学生自创电视台,强烈推荐!
  • 素质教育拓展是什么?
  • 我院室内设计0901、0904班学生作品选
  • 2009喜迎元旦师生美术作品选
  • 世界500强企业可成科技有限公司来我院招聘毕业生
  • 我院"可成奖学金”表彰大会召开
  • 五月花三维模式结硕果,100名杰出学子
  • 我院毕业生踏上“海尔”就业路
  • 加盟希望集团 五月花喜讯飞扬
  • 五月花百万富翁成长录————访电子商务成功学子记实
  •  
    就业安置 | 新闻中心 | 办学优势 | 校园生活 | 教学园地 | 招生简章 | 分校站点 | 求学向导 | 国际认证 | 学院电视台 | 在线报名 | 学院论坛 | 创业中心
    校区地址:成都市高新西区团结镇学苑路98号四川五月花专修学院 人才网: www.55rc.com
    主办:四川五月花专修学院 宣传部 备案:蜀ICP备号05000776号 网站纠错