如何在asp.net MVC中的backgroudworker进程中执行两个任务

时间:2012-10-26 11:29:30

标签: asp.net-mvc backgroundworker

我必须在asp.net的backgroud工作进程中并行执行两项任务。

以下是两项任务

  1. 如果域中的任何服务器发生任何错误事件(始终),则向支持人员发送电子邮件提醒

  2. 每4小时或根据用户配置为域中的所有服务器发送错误消息的状态报告。

  3. 我已经通过后台工作程序进程实现了第一项任务(

    现在我想实现第二个并且每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
                {
    
                }
            }
    
        }
    

    任何人都可以建议如何在同一个后台工作进程中实现第二个任务。

1 个答案:

答案 0 :(得分:0)

我建议您使用任务计划程序,它很容易,并会解决您的问题。