【发布时间】:2011-07-11 22:27:23
【问题描述】:
我有一个可以获取几百个 RSS 提要的系统。目前它们的刷新周期为 10 分钟,但我希望更快。以近实时/推送间隔获取 RSS 源的策略是什么?
我遇到的一些解决方案:
- 在 1 分钟内执行一次提取;如果没有变化,则在 2、4、8 等处再次获取。
- 找到 RSS 提要的平均更新间隔/方差,并将它们放在一个桶中(这个每 3 分钟更新一次,所以每 1 分钟检查一次;这个每周更新一次,所以做一个每天检查等)
【问题讨论】:
我有一个可以获取几百个 RSS 提要的系统。目前它们的刷新周期为 10 分钟,但我希望更快。以近实时/推送间隔获取 RSS 源的策略是什么?
我遇到的一些解决方案:
【问题讨论】:
没有办法让“拉动”快速有效。您要么更频繁地轮询(但效率更低),要么通过减少轮询来提高效率。
获得近乎实时体验的唯一方法是在正确的时间进行投票:)
幸运的是,一些发布者(越来越多!)使用 PubSubHubbub 更新他们的提要并让订阅者知道。 Superfeedr(我为 Superfeedr 工作)等其他服务使用不同的技术来了解何时是获取提要的最佳时间(基于历史更新、相关提要中的更新等)。
【讨论】:
我使用了像你这样的第一个选项。从检索提要之前的默认时间开始。如果发现新项目,则减少 10% 的等待时间,否则增加 10%。每次更新都执行此适应,系统会自行调整。
您可以使用不同的百分比,例如更快地缩短时间以更好地响应更新频率的变化。
包括一个最小和最大时间跨度,以在预定义的范围内保持等待。
它并不完美,但对我来说已经足够了。
【讨论】:
虽然这只是解决方案的一部分,但您也可以(如果提要通过 HTTP 提供)检查 RSS 提要的 Cache-Control 和 Expires 标头,以获取有关您应该多久获取一次提要的提示。
【讨论】: