3

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

该站点应每晚从 RSS 提要中获取数据,执行一些计算并使用计算值更新数据库。如何在共享主机环境中实现这一点?

我通常得到的答案是拥有一个执行此操作的 Windows 服务,但我不能使用它,因为我不允许在我的共享主机环境中运行 Windows 服务。

我发现的另一种选择是使用https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/中所述的 HttpRuntime.Cache

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

4

2 回答 2

3

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

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

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

于 2013-04-08T14:31:49.933 回答
1

Windows 计划任务

如果您没有任何专用资源,则在共享主机中是不可能的。非常有限。

使用诸如 Windows 计划任务和控制面板功能之类的技巧并不是很好的解决方案。他们大部分时间都很糟糕,因为今年他们让我们头疼。

调度网络服务

您可以在共享主机中使用ATrigger调度服务。.Net 库也可用于创建计划任务而无需开销。

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

于 2013-08-26T11:46:49.913 回答