C# 如何制作一个消耗大约500个RSS的web服务并将新项目保存在数据库中?
我有一个项目,我需要做一个服务,我们将添加到它约500个不同的网站RSS,我们希望这个服务收集新的RSS源从这些来源,并保存在我的SQL Server数据库标题和URLC# 如何制作一个消耗大约500个RSS的web服务并将新项目保存在数据库中?,c#,asp.net,rss,C#,Asp.net,Rss,我有一个项目,我需要做一个服务,我们将添加到它约500个不同的网站RSS,我们希望这个服务收集新的RSS源从这些来源,并保存在我的SQL Server数据库标题和URL 如何确定最佳的架构设计,以及哪些代码在这方面对我有帮助?这些指示并不特定于您的堆栈(c,asp.net),但我绝对不建议您在web应用程序的请求-响应周期中执行任何操作。它必须以异步方式完成,但结果可以从使用提要条目填充的数据库中获得 你很可能不得不这样做 构建一个您可以 每X分钟轮询一次提要。无论是使用cron作业,还是 一个
如何确定最佳的架构设计,以及哪些代码在这方面对我有帮助?这些指示并不特定于您的堆栈(
c
,asp.net
),但我绝对不建议您在web应用程序的请求-响应周期中执行任何操作。它必须以异步方式完成,但结果可以从使用提要条目填充的数据库中获得
cron
作业,还是
一个持续运行的守护进程,
你必须对每个提要进行投票
在其他之后(或以某种方式)
是并发的,但设计是
相同)。请使用
HTTP头喜欢和
如果修改以避免轮询数据
这还没有更新id
或guid
对于条目,但很可能
你必须用你自己的
系统太多(链接、散列…),因为
许多提要没有这些如果您不想处理之前暴露的众多问题中的任何一个(及时轮询、解析内容、区分以保持条目的唯一性…),我建议使用,因为它可以处理所有的痛点 我不打算在这里详细介绍实现或详细的体系结构(主要是因为在这个特殊时刻没有时间),但我要说:
- 不是web服务应该使用RSS提要,它应该只负责生成异步工作
- 出于两个原因,您不应该使用
线程池中的线程来执行此操作。一种是,可以假定该工作或多或少地耗费时间(
主要用于短期运行的任务),并且可能更重要的是,ThreadPool
线程用于服务传入的web请求;我不想和它竞争ThreadPool