如果我们设置 offline.html,将在 RAMJobStore 中安排 Job/Trigger 丢失

Will scheduled Job/Trigger in RAMJobStore lost if we set offline.html

目前,我计划运行安排每周发送电子邮件。 我希望触发器在应用程序离线时停止。然后在 AppStart 时再次重新安排。 看了文档,还是没搞清楚。 我在本地机器上试过,似乎 RAMJobStore 继续 运行ning,甚至应用程序都处于离线状态。如何在应用程序离线时停止它?

请与我分享一些想法或信息。谢谢

经过几次尝试,我发现在应用程序文件夹中 App_offline.htm 时触发器会关闭。

我设置了下面的代码,然后单击“开始”按钮来触发计划。 假设每 30 秒将收到总共 5 封电子邮件。如果测试邮件发送失败,假设会收到一封错误邮件。

收到第二封邮件后,我将粘贴 App_offline.html 复制到文件夹中。最后,我什么也没收到。当然,在我删除 App_offline.htm 之后也没有任何反应。谢谢!

p/s: 代码就是这样,到目前为止没有应用额外的 Web.Config。

public ActionResult Start()
{
    IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
    scheduler.Start();

    IJobDetail job = JobBuilder.Create<Jobclass>().Build();
    ITrigger trigger = TriggerBuilder.Create()
        .WithIdentity("trigger1", "group1")
        .StartNow()
        .WithSimpleSchedule(x => x
        .WithIntervalInSeconds(30)
        .WithRepeatCount(4))
        .Build();

    scheduler.ScheduleJob(job, trigger);
    return RedirectToAction("Index");
}

public class Jobclass:IJob
{
    public void Execute(IJobExecutionContext context)
    {
        string sMailStatus = MyClass.mailTemplate("myEmail@gmail.com", "myEmail@gmail.com", 
                     "Testing Email - " + DateTime.Now.ToShortDateString(), "Testing");
            if (sMailStatus != "sent")
            {
                MyClass.mailTemplate("myEmail@gmail.com", "myEmail@gmail.com", 
                    "Error : Testing Email", sMailStatus);
            }
     }
}