Algorithm 如何确定要更新的提要的优先级?

Algorithm 如何确定要更新的提要的优先级?,algorithm,Algorithm,假设我有500个RSS提要,需要不断更新,但不想每分钟检查所有500个。什么样的方法或算法可以最好地确定哪些提要应该更新,而其他提要则留待以后更新 假设我可以并且将保存历史数据/统计数据,即使在同一个提要中,更新频率也会有所不同。好吧,您自己部分回答了您的问题 使用现有统计信息根据提要的更新率对其进行优先级排序。保持统计信息本身的更新,以便它能够根据更新频率的变化进行调整。您描述的是非常常见的优先级调度问题。有很多可能的方法,但这里有一个简化的版本 设计一个优先级函数,确定更新特定提要的重要性

假设我有500个RSS提要,需要不断更新,但不想每分钟检查所有500个。什么样的方法或算法可以最好地确定哪些提要应该更新,而其他提要则留待以后更新


假设我可以并且将保存历史数据/统计数据,即使在同一个提要中,更新频率也会有所不同。

好吧,您自己部分回答了您的问题


使用现有统计信息根据提要的更新率对其进行优先级排序。保持统计信息本身的更新,以便它能够根据更新频率的变化进行调整。

您描述的是非常常见的优先级调度问题。有很多可能的方法,但这里有一个简化的版本

  • 设计一个优先级函数,确定更新特定提要的重要性。(例如,如果某个特定提要只更新了一小段时间,且历史更新率较低,则其优先级可能较低。)
  • 然后把饲料放在一个容器里
  • 当您需要做更多的工作时,从队列中获取优先级最高的提要
  • 为了确保每个人都有机会进行更新,定期提高一段时间内没有更新的提要的优先级

如果您想要高端方法,可以这样工作。为RSS提要选择一个概率模型,例如更新间隔时间遵循连续概率分布,例如。对于每个RSS提要,使用基于该提要更新历史的方法来估计各个分发版的参数。现在您有了一个概率模型,您可以使用该模型计算任何特定RSS提要在任何特定时间具有可用更新的概率。每当您有可用的时间段来检查一个流上的更新时,请检查具有最高概率的新数据的流。例如,指数概率是无记忆的,这意味着如果您检查提要是否有更新,而没有更新,那么在检查时,它有更新的概率将“重置”为0%,然后从那里向上增长,在不久的将来优先考虑其他提要