asp.net定時執行程式

紋路貓發表於2012-10-27

公司要做一個定時更新本地資料的程式,每週六的凌晨兩點更新本地資料,以確保本地資料的準確性。我做了一個定時傳送郵件的程式來模擬這個業務。

寫在在Global頁面裡面

protected void Application_Start(object sender, EventArgs e)
        {
            //在應用程式啟動時執行的程式碼
            System.Timers.Timer objTimer = new System.Timers.Timer();
            objTimer.Interval = 30000; //這個時間單位毫秒,比如10秒,就寫10000
            objTimer.Enabled = true;
           
            objTimer.Elapsed += Email;

        }


 private void Email(object sender, EventArgs e)
        {
            new Thread(delegate()
            {
                DateTime D = DateTime.Now;
                if (Convert.ToInt32(D.DayOfWeek) == 6 && D.Hour >= 14)
                {
                    Member_DAL.Common co = new Member_DAL.Common();
                    co.SendUserEmail2();
                }
                Thread.Sleep(1000);
            }).Start();
        }



如果將計時器的間隔設定太短,傳送郵件會失敗,因為郵件方阻止了這種傳送頻率的行為。


上面是用定時器來做的,我們可以在下面的Email這裡獲取當前日期和時間進行判斷。



發現一個地方,DateTime的DayOfweek返回來的是英文的星期幾,但是用數字匹配也能匹配成功。




相關文章