我希望从我的MVC网站发送预定时间表(一周一次)的电子邮件。在本地运行Visual Studio时,代码在预定时间内完美运行。但是,在部署到服务器后不会被触发。
当我在部署后点击一次网站时它开始工作,因为Applciaiton_Start事件在我触发Quartz引擎的地方被触发。
有没有办法在不访问网站的情况下触发引擎甚至一次。 Quartz总是以这种方式工作,你必须按一次应用程序。
答案 0 :(得分:3)
不,你不能。 在您的情况下,Quartz.net存在于您的应用程序中 当应用程序池被回收时,您的调度程序将死亡。
这不是Quartz.Net的问题,而是IIS及其管理应用程序池的方式。
我想你最好的选择是使用Windows Service中的调度程序。
另一种选择是创建一个简单的应用程序(控制台)并通过系统任务计划程序运行它。使用此选项,您可能希望摆脱Quartz.Net。
第三个选项是使用Uptime Robot或Pingdom等外部服务让您的应用程序保持活跃状态。我不会选择这个选项,但这是一种可能性。
如果您选择第3个选项,我建议您使用JobStore,这样您就可以将自己的工作保存在数据库中,并且不会错过任何火灾。