目前,我计划每周安排发送电子邮件的时间表。 我希望触发器会在应用程序脱机时停止。然后在AppStart时重新安排。 阅读完文档后,仍然无法找到答案。 我尝试在本地机器上,看起来RAMJobStore继续运行,甚至应用程序都处于脱机状态。如何让应用程序离线时如何停止?
请与我分享一些想法或信息。感谢
答案 0 :(得分:0)
经过多次尝试,我发现当app文件夹中的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);
}
}
}