2007年8月21日 星期二

自動執行

如果需要系統每天更新資料
可以在 global.cs 下處理
/*
public class Global : System.Web.HttpApplication
{
    //宣告timer
    private System.Timers.Timer ConveyAuto;
    private DateTime lastRemiderCheckTime;

    #region 啟動timer
    ConveyAuto = new System.Timers.Timer();

    //要執行的程式
    ConveyAuto.Elapsed+=new ElapsedEventHandler(AutoHandler);

     //設定時間(dd,hh,mm,ss,ff)
    TimeSpan tsReminder = new TimeSpan(0, 0, 0, 0, 1);

    //引發 Elapsed 事件的時間間隔 (單位為毫秒)。預設值是 100 毫秒。
    ConveyAuto.Interval= tsReminder.Milliseconds;
    ConveyAuto.Enabled=true;
    #endregion


    #region 自動轉檔
    private void AutoHandler(object source, ElapsedEventArgs e)
    {
        DateTime dt = DateTime.Now;
        //從 web.config中設定的時間 取得數值
        string[] ConveyTime = System.Configuration.ConfigurationSettings.AppSettings["ConveyTime"].ToString().Split(',');
        int h = int.Parse(ConveyTime[0].ToString());
        int m = int.Parse(ConveyTime[1].ToString());
        int s = int.Parse(ConveyTime[2].ToString());
        TimeSpan tmUpd = new TimeSpan(h,m,s);
        // 每天 hh:mm:ss 執行
        if( (dt.TimeOfDay == tmUpd) && (lastRemiderCheckTime.Date < dt.Date) )
        {
            ((System.Timers.Timer)source).Enabled=false;
            lastRemiderCheckTime = dt;
            //合格證轉檔
            ConveyFunction CF = new ConveyFunction();
            CF.Convey(System.DateTime.Now.ToString("yyyyMMdd"), "A");

            ((System.Timers.Timer)source).Enabled=true;
        }
    }
    #endregion
}
*/

沒有留言: