2014-07-26 22 views
0

当我们使用quartz.net完成任务后,是否有任何方式显示消息? 换句话说,当一项任务完成后,我们该如何发现?在quartz.net工作完成后显示消息

我用下面的代码和SendMassEmail类

protected void Button1_Click(object sender, EventArgs e) 
{ 
    ConfigureQuartzJobs(); 
} 
public static void ConfigureQuartzJobs() 
{ 



    // construct a scheduler factory 
    ISchedulerFactory schedFact = new StdSchedulerFactory(); 

    // get a scheduler 
    IScheduler sched = schedFact.GetScheduler(); 
    sched.Start(); 


    IJobDetail job = JobBuilder.Create<SendMassEmail>() 
     .WithIdentity("SendJob") 
     .Build(); 
    var trigger = TriggerBuilder.Create() 
     .WithIdentity("SendTrigger") 
     .WithSimpleSchedule(x => x.WithRepeatCount(0)) 
     //.StartAt(startTime) 
     .StartNow() 
     .Build(); 

    sched.ScheduleJob(job, trigger); 
} 

回答

1

的工作在一个单独的线程运行到,你不会有一个参考发送大量电子邮件。做到这一点的方法是让你的工作通知已完成(通过在数据库中写入记录,调用服务等),然后让你的应用程序显示消息。

+0

谢谢,这是一个很好的建议。我会尝试。 – user3250818

1

如果我要这样做..........我会的。

使用MEF。

为IPostJobRunNotification编写接口。

写2个混凝土。 1将是一个“DoNothingPostJobRunNotification”具体。 第二个将是“SendEmailPostJobRunNotification”

连线我的(原始)作业来调用一个(或多个)IPostJobRunNotification(s)。

然后,您可以根据需要放入混凝土。

看到这个:

What is different between and purpose of MEF and Unity?

你可以去团结注入为好。

+0

谢谢,我是初学者,我第一次听到MEF,所以请让我试试。如果有任何问题,我会将其标记为答案。 – user3250818