none
Cache与Application RRS feed

  • 问题

  • 使用 System.Web.Caching类的HttpRuntime.Cache.Insert(key, value)保存了信息,没有设置过期时间
            Timer gTimer = new Timer();
    
            protected void Application_Start(object sender, EventArgs e)
            {        
                gTimer.AutoReset = true;
                gTimer.Elapsed += TimerEventFunction;
                gTimer.Interval = 600 * 1000;
                gTimer.Start();
            }
    
            private void TimerEventFunction(object sender, ElapsedEventArgs e)
            {
                CacheHelper cache = new CacheHelper();
                cache.ConvertToXml(HttpRuntime.AppDomainAppPath + "\\XML\\");
                cache.Clear();
            }
    设置定时器,每隔一段时间读取cache保存到XML文件,这一步没有问题

    但是疑问是:比如定时器固定了是10分钟,万一中途应用程序终止了,或者IIS上的这个网站停止了,不就有一些cache里面的内容没有保存到XML文件里面?

    请问大家这个该怎么解决?
    I Belong To Jesus...
    2010年3月2日 3:12

答案

  • 你好,

    既然可以考虑把cache的东西保存到XML文档中,为什么不考虑下保存到数据库。

    Cache中的东西应该是网站要经常用到的数据,而且发生更改的情况应该也不是很多的。
    这样对数据库的操作也不会很多。
    Microsoft Online Community Support
    2010年3月4日 3:20

全部回复

  • 你好!

    换种思路可能会更好一些,即 Cache 被修改的同时将 Cache 的内容保存到 XML。

    知识改变命运,奋斗成就人生!
    2010年3月2日 4:45
    版主
  • 除了xxy的方法外,你还可以在Application_End里进行保存
    不知道行不行,具体没有测试
    【孟子E章】
    2010年3月2日 4:56
    版主
  • Application_End测试了
    好像不行

    xxy的方法,是一个比较好的思路,但是存在一修改cache就修改XML的时候存在一个 “多用户同时操作XML”的问题
    I Belong To Jesus...
    2010年3月2日 5:43
  • 你好,

    既然可以考虑把cache的东西保存到XML文档中,为什么不考虑下保存到数据库。

    Cache中的东西应该是网站要经常用到的数据,而且发生更改的情况应该也不是很多的。
    这样对数据库的操作也不会很多。
    Microsoft Online Community Support
    2010年3月4日 3:20