ASP.NET MVC 4計画タスク実装方法(ある機能をタイミングで実行)

4521 ワード

システムの中であるタスクをタイミング的に実行するのは比較的よく使われる機能であり、例えば、ある部門が定期的に上級部門にデータを報告するのは典型的な例であり、以下で簡単に述べる.Netmvcでは、ある機能をタイミングで実行する方法をどのように実現しますか.
1.まずGlocalを修正する.asaxファイル、Application_Startメソッドの一番下には、次のものがあります.
//     
//1000  1    
System.Timers.Timer myTimer = new System.Timers.Timer(1000);
//TaskAction.SetContent         
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(TaskAction.SetContent);
myTimer.Enabled = true;
myTimer.AutoReset = true;

以上のコードは、アプリケーション起動時に2、Glocalで実行する.asaxファイルには、次の方法が含まれます.
void Session_End(object sender, EventArgs e)
{
    //        ,   IIS            
    System.Threading.Thread.Sleep(1000);
    //    ,       
    TaskAction.SetContent();
    //      web  ,            aspx          ,      Application_Start
    //      URL
    string url = "http://localhost:3813";
    System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
    System.Net.HttpWebResponse myHttpWebResponse = (System.Net.HttpWebResponse)myHttpWebRequest.GetResponse();
    System.IO.Stream receiveStream = myHttpWebResponse.GetResponseStream();//        
 
    ////   :     Web.config      sessionstate       InProc  ,     Session_End   。
    //           StateServer
    //   SQLServer,        。
}

3、以上の2つの方法で使用するクラスを作成します.
public static class TaskAction
{
    private static string content = "";
    /// <summary>
    ///          .
    /// </summary>
    public static string Content
    {
        get { return TaskAction.content; }
        set { TaskAction.content += "<div>" + value + "</div>"; }
    }
    /// <summary>
    ///              
    /// </summary>
    /// <param name="source"></param>
    /// <param name="e"></param>
    public static void SetContent(object source, ElapsedEventArgs e)
    {
        if (DateTime.Now.ToString("HH:mm:ss") == "11:35:00")
        {
            //           
            Content = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"+"");
        }
    }
    /// <summary>
    ///              
    /// </summary>
    public static void SetContent()
    {
        Content = "END: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    }
}

上の「//ここにあなたがタイミングよく実行するコードを書きます」に実行する操作を書けばいいです.ここには11:35にユーザーに退勤を注意するように示しています.ページを更新する必要があります.
以上の方法により,タイミング追加記録や記録検査などのタスクを実現でき,後でタイミングタスクを完了することができるようになった.
参照:http://www.kwstu.com/ArticleView/dabaomvc_201409091155382759