2014-07-26 20 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