Web应用程序如何在共享主机上实现计划任务?

时间:2011-11-24 10:29:29

标签: asp.net scheduler quartz.net

据我所知,quartz.net调度程序是在global.asax中启动的。也就是说,quartz.net调度程序无法工作,除非有人访问该网站。这不是一种安全的方法,因为可以通过重新启动服务器或终止IIS池中的进程来终止调度程序线程,并且调度程序线程将保持不启动状态,直到有人再次访问该网站。

我们可以使用Windows调度程序来解决这个问题。但我们使用的是共享主机,我们无法在主机上编写服务或sql server作业或安排Windows任务。

如果我们确信每天都会访问我们的网站,这不是问题。 如果没有,即使几天没有人访问我们的网站,即使重新启动服务器,我们如何确保Web调度程序始终有效?

2 个答案:

答案 0 :(得分:2)

您应该将quartz.net作为Windows服务安装,并通过远程处理从您的Web应用程序访问它。这将保证调度程序始终在运行。有关将调度程序设置为Windows服务的说明,请访问: Getting Started with Quartz.Net Part 1

答案 1 :(得分:1)

最简单的方法是让服务器上的计划任务触发您的工作(通过请求页面)。如果您没有可以执行此操作的服务器,则可以使用pingdom等命令以n个间隔命中页面。

如果你有一台服务器来做这件事,你也可以写一项服务 - 但是对于一些微不足道的事情,我只是使用预定的任务。