1

私は初めてでMVC 4、これはこのテクノロジの最初のプロジェクトです。ASP.NET のMovieおよびContosoUniversity例を調べました。

このサイトは、プリペイド商品を販売していると主張しています。データベースには、ユーザー、ディーラー、サプライヤーなどのテーブルが含まれています。

システムをスケジュールしようとしています。

たとえば、毎晩 23:59 に特定の関数が呼び出され、特定のクエリに一致するすべてのユーザー名とパスワードがデータベースから取得されます。

また、特定の日付までに SMS を送信する必要があります。テーブルに別の列を割り当てて、サービスの終了に向けてアラートを発行し続けます。

アイデアと、システムのスケジューリングや特定のアイデアの実現をいじり始める方法について聞きたいです。

私の英語に感謝し、許してください。

4

3 に答える 3

2

最後に、私はグローバルなasax内でそれを行いました。それが最善の方法かどうかはわかりませんが、うまくいきます。

これがコードです。

protected void Application_Start()
    {
        try
        {

           .
           .
           .
            SetTimer();
        }
        catch (Exception ex)
        {
            ...
        }
    }


    private static void SetTimer()
    {
        DateTime tomorow = DateTime.Now.AddDays(1);
        DateTime midnight = new DateTime(tomorow.Year, tomorow.Month, tomorow.Day, 0, 0, 0);
        TimeSpan d = midnight - DateTime.Now;

        sTimer.Enabled = true;
        sTimer.Interval = d.TotalMilliseconds;
        sTimer.Elapsed += new System.Timers.ElapsedEventHandler(sTimer_Elapsed);
        sTimer.Start();
    }

    static void sTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        sTimer.Interval = TimeSpan.FromHours(24).TotalMilliseconds;
        db = new CompanyContext();

        //some func
        sendInOutUsers();            
        AlartUsers();
    }
于 2012-11-06T10:52:51.730 に答える
0

MVC プロジェクト外の別のコンポーネントとしてスケジューリングを行う必要があります。通常、IIS サーバー (または他のサーバー) で常に実行される Windows サービス プロジェクトを作成します。このプロジェクトには、指定したスケジュールでさまざまなタスクを起動するためのタイマーが含まれます。構成ファイル、またはスケジュールやその他の実行情報を含むデータベース内のテーブルを作成し、サービスからこのファイルまたはテーブルにクエリを実行できます。

于 2012-08-30T16:17:47.000 に答える
0

スケジュールされた時間に実行されるサーバーで別の Windows サービスを使用するのはどうですか? 私は個人的にこれを実装しましたが、うまくいきました。

于 2012-08-30T16:18:42.600 に答える