asp.Netグローバルアプリケーションクラスの構成タイミングを巧みに達成して静的ページを生成する
1582 ワード
// " (Global Application Class)", :
public class Global : System.Web.HttpApplication
{
static Timer BuildStaticPagesTimer;
static object locker = new object();
static int count;
protected void Application_Start(object sender, EventArgs e)
{
//double check lock...
if (BuildStaticPagesTimer == null)
{
lock (locker)
{
if (BuildStaticPagesTimer == null)
{
//every 20 minutes, run BuildStaticPagesTimer_Callback in every 20 minutes
BuildStaticPagesTimer = new Timer(BuildStaticPagesTimer_Callback, null, 0, 20 * 60 * 1000);
}
}
}
}
private static void BuildStaticPagesTimer_Callback(object state)
{
Dictionary<string, string> urlsNeedToBuild = GetPagesNeedToBuiltStatic();
foreach (string oldUrl in urlsNeedToBuild.Keys)
{
string newUrl = urlsNeedToBuild[oldUrl];
Build(oldUrl, newUrl);
}
}
private static void Build(string oldUrl, string newUrl)
{
//
throw new NotImplementedException();
}
private static Dictionary<string, string> GetPagesNeedToBuiltStatic()
{
//
throw new NotImplementedException();
}
}