在quartz.net工作完成后显示消息

时间:2014-07-26 07:14:09

标签: jobs 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);
}

2 个答案:

答案 0 :(得分:1)

作业在一个单独的主题上运行,但您没有参考。执行此操作的方法是让您的作业通知已完成(通过在数据库中写入记录,调用服务等),然后让您的应用显示消息。

答案 1 :(得分:1)

如果我打算这样做..........我愿意。

使用MEF。

为IPostJobRunNotification编写接口。

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

连接我的(原始)作业以调用一个(或多个)IPostJobRunNotification。

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

见:

What is different between and purpose of MEF and Unity?

你也可以参加Unity注射。