在托管环境中预定的.NET代码执行?

时间:2009-10-18 17:37:30

标签: c# .net hosting scheduled-tasks

我在控制台应用程序中有大约40行.NET代码,它们读取RSS并将数据存储和存储在数据库中。只要RSS源存在(无限期),我就需要每晚执行此代码。目前,我只是启动控制台应用程序。从我的家用电脑。

因为我无法相信自己每晚都要记住这样做,所以我需要托管这个代码。我想以某种方式拥有这个应用程序。或代码(它可以轻松放入ASP.NET页面代码隐藏并在页面加载时触发执行)自动运行,而无需运行控制台应用程序。手动

有什么想法吗?

编辑:我不想从我的电脑上运行这段代码;我无法保证我的电脑每晚都不会休眠或连接到互联网。

编辑:现在我想在global.asax的Application_Start中使用BackgroundWorker生成后台线程,让它每天下载一次RSS feed,其余时间下载Thread.Sleep()。

5 个答案:

答案 0 :(得分:2)

您可以使用Windows built-in任务计划程序启动控制台应用程序。

答案 1 :(得分:2)

尽管存在争议,但Jeff Atwood在博客中写到了他们如何使用缓存过期来完成此操作。请查看http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

您可以使用类似的方法,并在您希望流程启动时安排缓存过期。

答案 2 :(得分:1)

我建议只使用'at'命令,而不是让这个小应用程序托管在某个地方。

C:\>at /?
The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

答案 3 :(得分:1)

通过电子邮件发送您的webhost。某些托管主机将为您设置计划任务。

他们可能会有关于如何调用计划任务的不同政策(即某些可能要求它成为aspx页面而不是EXE)

答案 4 :(得分:0)

你看过Quartz Scheduler for .NET吗?

标语: Quartz.NET是一个功能齐全的开源作业调度系统,可用于从最小的应用程序到大型企业系统。