我在网站上工作,它将重要数据存储在HTTPContext.Cache中以获得快速性能。如果在白天时间内更改了任何数据。我们有自动化流程来清除和重新生成缓存。但问题是当生成缓存时,任何试图访问该网站的用户都会收到错误。
我正在寻找这个问题的解决方案。我可以停止对网站的请求,直到缓存生成没有完成。
一种是放置app_offline文件,并在完全刷新缓存时删除它。
如果您需要更多信息,请告诉我
答案 0 :(得分:1)
您可以使用global.asax
并执行类似
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if(fCacheIsNotReady)
{
HttpContext.Current.Response.TrySkipIisCustomErrors = true;
HttpContext.Current.Response.Write("We not build our site, please try again in few seconds.");
HttpContext.Current.Response.StatusCode = 403;
HttpContext.Current.Response.End();
return ;
}
}
fCacheIsNotReady
可以是全局静态参数,当你开始构建缓存时为true,当你结束时为false,
您还可以查看要停止的文件。
我不知道你是如何创建缓存的,你也可以使用一些lock()
来保留用户,直到缓存完成。