- //在项目里添加一个"全局应用程序类(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();
- }
- }