我正在设计一个ASP.NET和C#的网站,在其中我正在做以下的任务。
有一个表List_of_Site,其中包含要爬行的站点列表。另一个表Site1_Links,它包含链接、内容等爬行数据。
我用c# asp.net编写了一个程序,其中我在visual中有一个表单Home.aspx,还有一个名为Crawl的按钮。每当我单击该按钮时,它都会逐个从表List_of_Site获取站点,然后抓取它们以查找可用的新链接,并将它们分别保存在Site1_Links表中。
但要做到这一点,我需要每次点击按钮,但我想要的东西,可以自动化的进程在一段时间间隔,例如X分钟。
请给我一个建议?
发布于 2012-01-11 15:11:33
为此,您不希望使用ASP.NET web应用程序。Web应用程序是被动的请求/响应系统。他们躺在那里等待一个请求,回应它,然后回去等待。不适合预定的后台任务。
一般来说,您有两个简单的选项:
从历史上看,控制台应用程序更易于编写和调试。我相信Windows仍然附带了一个捆绑的任务调度程序,它可以在一个设定的时间表上运行一个可执行文件。我通常更喜欢这种方法。然而,也有一些取舍。例如,我不相信它会运行,除非有人登录到机器上。
Windows服务通常更适合该任务,但对于普通用户来说,编写和维护通常要复杂一些。但是,它的好处是它不干扰UI (运行时没有黑色控制台窗口),也不需要有人登录到工作站运行。
发布于 2012-01-11 15:09:14
试着把计时器挂到你的按钮上。你可能也想让它停下来。以下是关于使用上述计时器的一个很好的教程。
http://msdn.microsoft.com/en-us/library/bb386404.aspx
https://stackoverflow.com/questions/8821522
复制相似问题