Discuz!NT 缓存设计简析
bsp; 1.项目到了beta版时出现了无法跨web园共享数据的问题。它的表现是这样的,当你在IIS 服务的应用程序池中设置2个或以上的WEB园时,这时你在后台更新缓存时,就是出现缓存 “隔三差五”数据不更新或轮换更新的情况。说白了,就是只有一个应用进程中的数据缓存 被更新,而其余的进程中所有数据还没事人似的保留原有的面貌。这个问题主要是因为static 的数据实例(也就是上面所有的单体代码中的对象)虽然而当前进程中“唯一”,但在其它进程 中却各自都有一个造成的。一开始我也很惊讶,为什么微软不能像提供“全局”钩子那样的技术 一样提供一种跨WEB园来共享数据的技术或关键字呢,不过一转念也猜出了一二分,必定多WEB园 是一种让程序(WEB)跑起来更加安全,稳定快速的“解决方案”。 因为谁都不好说自己的程序 一点BUG没有,即有真有这样的代码,但当遇上运行环境这个因素后,也会表现得有些难以控制。 但微软通过web园这个技术就会把运行在几个不同进程下的程序相互隔离,使其谁也不影响到谁, 即使其中一个进程down了,而其它进程依就会继续正常 "工作" 。因此程序中的对象实例和所有 资源每个进程中都会保存一份,完全相同。而如果引用共享机制就有可能出现当进程共享的数据 或程序对象出现问题时,所有进程就可能都玩完了, 因此就需要进程隔离。 说是这么说,但总也要想个办法解决当时面临的问题吧。记得在豪杰工作期间,一次老梁
public static DNTCache CheckAndRemoveCache(DNTCache instance)// |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |