有什么方法可以在我们使用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);
}
答案 0 :(得分:1)
作业在一个单独的主题上运行,但您没有参考。执行此操作的方法是让您的作业通知已完成(通过在数据库中写入记录,调用服务等),然后让您的应用显示消息。
答案 1 :(得分:1)
如果我打算这样做..........我愿意。
使用MEF。
为IPostJobRunNotification编写接口。
写出2个混凝土。 1将是一个“DoNothingPostJobRunNotification”具体。 第二个是“SendEmailPostJobRunNotification”
连接我的(原始)作业以调用一个(或多个)IPostJobRunNotification。
然后你可以根据需要放入混凝土。
见:
What is different between and purpose of MEF and Unity?
你也可以参加Unity注射。