以近乎实时的间隔刷新RSS源

以近乎实时的间隔刷新RSS源,rss,feed,Rss,Feed,我有一个系统可以获取几百个RSS提要。目前,它们的刷新周期为10分钟,但我更愿意加快。以接近实时/推送间隔获取RSS源的策略是什么 我遇到了一些解决方案: 在1分钟内提取;如果没有变化,则在2、4、8等处再次提取 找到RSS提要的平均更新间隔/差异时间,并将它们放入一个bucket中(这个每3分钟更新一次,所以每1分钟检查一次;这个每周更新一次,所以每天检查一次,等等) 虽然这只是解决方案的一部分,但您也可以(如果提要是通过HTTP提供的)检查RSS提要的缓存控制和Expires头,以获取关于

我有一个系统可以获取几百个RSS提要。目前,它们的刷新周期为10分钟,但我更愿意加快。以接近实时/推送间隔获取RSS源的策略是什么

我遇到了一些解决方案:

  • 在1分钟内提取;如果没有变化,则在2、4、8等处再次提取
  • 找到RSS提要的平均更新间隔/差异时间,并将它们放入一个bucket中(这个每3分钟更新一次,所以每1分钟检查一次;这个每周更新一次,所以每天检查一次,等等)

虽然这只是解决方案的一部分,但您也可以(如果提要是通过HTTP提供的)检查RSS提要的缓存控制和Expires头,以获取关于您应该多久提取一次提要的提示。

没有办法使“拉取”快速高效。您可以更频繁地进行投票(但效率较低),也可以通过减少投票频率来提高效率

获得近实时体验的唯一方法是在正确的时间进行投票:)


幸运的是,一些Publihser(越来越多!)使用PubSubHubbub更新他们的订阅源并让订阅者知道。其他服务,如(我为Superfeedr工作)使用不同的技术来了解何时是获取提要的最佳时间(基于历史更新、相关提要中的更新等)。

我使用了类似于您的第一选项。从检索提要之前的默认时间开始。如果发现新项目,将等待时间缩短10%,否则增加10%。在每次更新时执行此自适应,系统会自行调整

您可以使用不同的百分比,例如,缩短时间,以便更好地响应更新频率的变化

包括最小和最大时间跨度,以使等待保持在预定义范围内


这并不完美,但对我来说已经足够好了。

有没有一个我可以看到的工作示例,让我有一个想法。