. net服务来监控网页的变化
本文关键字:变化 网页 监控 服务 net | 更新日期: 2023-09-27 18:09:55
我想创建一个服务,将监控网页的变化,即页面内容已更新。我正在努力思考实现这一目标的最佳途径,目前我正在考虑几个选择。注意,可能有数百个页要监视,检查的间隔可以是秒或小时(可配置)。
- 为每个页面创建一个windows服务来监视
- 创建一个windows服务,为每个页面生成一个线程来监视
现在,我关心的是哪一个是最好的方法,以及这些是否是我没有考虑过的替代方法。我认为我可以从隔离每个监视任务中获益,但会以物理资源和创建/维护工作的开销为代价。第二种方法稍微复杂一些,但更简洁。显然,它也会失去隔离性,因为如果服务失败,那么所有监视都将失败。
我做过类似的事情,我通过使用一个持久化队列(一个SQL Server表)来解决这个问题,该队列将存储远程Uri以及最后一次运行的间隔和DateTime。
然后我可以通过选择具有lastRun + interval <的条目来获得我想运行的所有条目。现在。>
如果您的最小间隔在秒范围内,您可能希望使用ThreadPool,以便您可以同时发出多个请求。(记住要相应地调整app.config中的maxConnections设置)。
我将使用一个Windows服务(看看TopShelf项目),然后我将使用Quartz。Net触发工作。使用Quartz,您可以控制它是否必须等待以前的工作完成等。
创建一个Windows服务是可行的…关于这个windows服务的失败,你可以采取一些措施来处理,例如配置windows,在失败时自动重新启动windows服务…
我建议使用线程池方法和/或System.Threading.Timer
与ConcurrentDictionary
或ConcurrentQueue
相结合。