繁体   English   中英

.NET Service监视网页更改

[英].NET Service to monitor web page changes

我想创建一个服务来监视网页的更改,即页面内容已更新。 我正在尝试找到实现此目标的最佳方法,目前我正在考虑几种选择。 请注意,可能要监视数百个页面,并且检查间隔可能是秒或小时(可配置)。

  1. 为要监视的每个页面创建Windows服务
  2. 创建一个Windows服务,为每个页面生成一个线程以进行监视

现在,我担心哪种方法是最好的方法,以及这些方法是否是我未曾考虑过的替代方法。 我认为1可以将每个监视任务隔离开来,但是会以物理资源和创建/维护工作方面的开销为代价。 第二个会稍微复杂些,但会更清洁。 显然,如果服务失败,则所有监视都将失败,这也将导致隔离。

我做过类似的事情,并通过有一个持久队列(SQL Server表)来解决此问题,该队列将在最后一次运行时将远程Uri以及时间间隔和DateTime一起存储。

然后,我可以通过选择具有lastRun + interval <now的条目来获取要运行的所有条目。

如果最小间隔在几秒钟左右,则可能要使用ThreadPool,以便可以同时发出多个请求。 (请记住要相应地调整app.config中的maxConnections设置)。

我将使用一个Windows服务(为此查看TopShelf项目),然后让Quartz.Net触发作业。 使用Quartz,您可以控制是否必须等待以前的作业完成等。

创建一个Windows服务是必经之路...关于此Windows Service的失败,您可以采取多种措施来解决-例如,将Windows配置为在失败时自动重新启动Windows Service ...

我建议将线程池方法和/或System.Threading.TimerConcurrentDictionaryConcurrentQueue结合使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM