0

asp.netのバックグラウンドワーカープロセスで2つのタスクを並行して実行する必要があります。

以下は2つのタスクです

  1. ドメイン内のサーバーのいずれかでエラーイベントが発生した場合にサポート担当者に電子メールアラートを送信しました(常に)

  2. ドメイン内のすべてのサーバーのエラーメッセージのステータスレポートを、4時間ごとに、またはユーザー構成に基づいて一度に送信しました。

私はすでにバックグラウンドワーカープロセスを通じて最初のタスクを実装しました(

次に、2つ目を実装し、4時間ごとに、またはユーザーが構成したデータベースからデータをフェッチします。

以下は私が実装に使用したソースコードです。

      protected void Application_Start()
      {
        AreaRegistration.RegisterAllAreas();
        RegisterRoutes(RouteTable.Routes);

        BackgroundWorker worker = new BackgroundWorker();
        worker.DoWork += new DoWorkEventHandler(DoWork);
        worker.WorkerReportsProgress = false;
        worker.WorkerSupportsCancellation = true;
        worker.RunWorkerCompleted +=
               new RunWorkerCompletedEventHandler(WorkerCompleted);
        worker.RunWorkerAsync(); 

    }


    private static void DoWork(object sender, DoWorkEventArgs e)
    {
        GetEmailAlertData objGetEmailAlertData = new GetEmailAlertData();
        List<Email> lstEmaildetails = objGetEmailAlertData.GetEmailAlertDetails();
        SentinelAlerter objSentinelAlerter = new SentinelAlerter();
        foreach (Email objEmail in lstEmaildetails)
        {
            try
            {
       // I have implement first task           
                objAlerter.SendAlert(objEmail);
            }
            catch (Exception ex)
            {

            }
            finally
            {

            }
        }

    }

同じバックグラウンドワーカープロセスで2番目のタスクを実装する方法を誰かが提案できますか?

4

1 に答える 1

0

簡単で問題を解決できるタスクスケジューラを使用することをお勧めします。

于 2012-10-26T11:55:49.147 に答える