Quartz.net:计划代码在部署后自动工作,在本地工作

时间:2015-08-11 13:48:42

标签: .net asp.net-mvc quartz-scheduler quartz.net

我希望从我的MVC网站发送预定时间表(一周一次)的电子邮件。在本地运行Visual Studio时,代码在预定时间内完美运行。但是,在部署到服务器后不会被触发。

当我在部署后点击一次网站时它开始工作,因为Applciaiton_Start事件在我触发Quartz引擎的地方被触发。

有没有办法在不访问网站的情况下触发引擎甚至一次。 Quartz总是以这种方式工作,你必须按一次应用程序。

1 个答案:

答案 0 :(得分:3)

不,你不能。 在您的情况下,Quartz.net存在于您的应用程序中 当应用程序池被回收时,您的调度程序将死亡。

这不是Quartz.Net的问题,而是IIS及其管理应用程序池的方式。

我想你最好的选择是使用Windows Service中的调度程序。

另一种选择是创建一个简单的应用程序(控制台)并通过系统任务计划程序运行它。使用此选项,您可能希望摆脱Quartz.Net。

第三个选项是使用Uptime RobotPingdom等外部服务让您的应用程序保持活跃状态​​。我不会选择这个选项,但这是一种可能性。

如果您选择第3个选项,我建议您使用JobStore,这样您就可以将自己的工作保存在数据库中,并且不会错过任何火灾。