【问题标题】:show message after quartz.net job finished在quartz.net 工作完成后显示消息
【发布时间】:2014-07-26 07:14:09
【问题描述】:

当我们使用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);
}

【问题讨论】:

    标签: jobs quartz.net


    【解决方案1】:

    作业在您没有引用的单独线程上运行。这样做的方法是让您的工作通知它已完成(通过在数据库中写入记录、调用服务等),然后让您的应用显示消息。

    【讨论】:

      【解决方案2】:

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

      使用 MEF。

      为 IPostJobRunNotification 编写一个接口。

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

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

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

      看这个:

      What is different between and purpose of MEF and Unity?

      你也可以进行 Unity 注入。

      【讨论】:

      • 谢谢,我是工作的初学者,这是我第一次听说 MEF,所以请让我试试。如果有任何问题,我会将其标记为答案。
      猜你喜欢
      • 2023-03-17
      • 2017-03-29
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多