如何在ASP.net中安排任务?

时间:2013-04-08 14:28:43

标签: asp.net scheduled-tasks

我正在 ASP.net(C#)开发一个网站,并且有以下要求:

网站应每晚从RSS Feed中获取数据,执行一些计算并使用计算值更新数据库。如何在共享托管环境中实现此目的?

我通常得到的答案是有一个Windows服务可以执行此操作,但我无法使用此服务,因为我无法在共享托管环境中运行Windows服务。

我找到的另一个替代方法是使用HttpRuntime.Cache,如http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

中所述

然而,这种方法似乎有很多缺点。 还有其他方法吗?

2 个答案:

答案 0 :(得分:3)

在某些(大多数?)共享托管服务提供商,至少我使用的那些,它们允许您通过其控制面板安排任务。我知道discountasp.net和rackspace也是如此。

如果您的提供商确实具有该功能,请在指定时间调用/加载某个asp.net网页,并开展工作。对于很多小任务来说,这将是阻力最小的路径。

如果它不提供该功能,并且您不愿意切换提供程序,则可以始终从不在ISP的计算机上运行计划任务(使用Windows服务器中的内置计算机),因为你可以从它到达数据库。我过去也使用过这种方法。任何在正确的时间可靠开启的机器都可以。

答案 1 :(得分:1)

Windows计划任务

如果您没有任何专用资源,则无法在共享主机中使用。非常有限。

使用像Windows计划任务和控制面板功能这样的黑客不是很好的解决方案。他们大部分时间都很糟糕,这些年来我们很头疼。

安排网络服务

您可以在共享托管中使用ATrigger日程安排服务。 .Net library也可用于创建计划任务而无需开销。

免责声明:我是ATrigger团队的一员。这是一个免费软件,我没有任何商业目的。