如何构建大型/繁忙的RSS源

如何构建大型/繁忙的RSS源,rss,Rss,本周我一直在玩RSS提要,为了下一个技巧,我想为我们的内部应用程序日志构建一个RSS提要。我们有一个集中的数据库表,我们无数的批处理和内部网应用程序使用它来发布日志消息。我想从这个表中创建一个RSS提要,但我不确定如何处理这个量——即使在正常的一天,每天也可能有数百个条目。一个特殊的让你想放弃的日子可能会有几千年。有什么想法吗?不知道您的申请,我无法提供具体建议 这就是说,在这类系统中,有一定程度的严重性是很常见的。您可以在URL的末尾添加一个查询字符串参数,用于指定严重性。如果设置为DEBUG

本周我一直在玩RSS提要,为了下一个技巧,我想为我们的内部应用程序日志构建一个RSS提要。我们有一个集中的数据库表,我们无数的批处理和内部网应用程序使用它来发布日志消息。我想从这个表中创建一个RSS提要,但我不确定如何处理这个量——即使在正常的一天,每天也可能有数百个条目。一个特殊的让你想放弃的日子可能会有几千年。有什么想法吗?

不知道您的申请,我无法提供具体建议

这就是说,在这类系统中,有一定程度的严重性是很常见的。您可以在URL的末尾添加一个查询字符串参数,用于指定严重性。如果设置为DEBUG,您将看到每个事件,无论这些事件多么琐碎。如果将其设置为致命,则只会看到系统发生严重故障的事件

如果仍然有太多的事件,您可能希望将事件细分为某种类别系统。同样,我会将其作为查询字符串参数


然后,您可以为各种类别和严重性提供多个RSS提要。这将允许您调整警报级别,使其达到可接受的级别

如果不了解您的申请,我无法提供具体建议

这就是说,在这类系统中,有一定程度的严重性是很常见的。您可以在URL的末尾添加一个查询字符串参数,用于指定严重性。如果设置为DEBUG,您将看到每个事件,无论这些事件多么琐碎。如果将其设置为致命,则只会看到系统发生严重故障的事件

如果仍然有太多的事件,您可能希望将事件细分为某种类别系统。同样,我会将其作为查询字符串参数


然后,您可以为各种类别和严重性提供多个RSS提要。这将允许您调整警报级别,使其达到可接受的级别

好吧,我决定怎么处理这件事。我对每一列使用timestamp字段,并按天分组。这需要一点SQL fu来实现,因为当然这里有一个完整的时间戳,我需要半智能地了解如何从组中选择要显示的日志消息,但这并不太糟糕。此外,我正在构建它,让您选择要监视的应用程序,然后显示特定日期最多50条的每条消息

这让我明白了一些道理


我仍然希望对更一般的问题有一个好的答案:你如何将许多重要的信息联合起来,其中丢失一条信息可能是一个问题?

好的,我决定了如何处理这个问题。我对每一列使用timestamp字段,并按天分组。这需要一点SQL fu来实现,因为当然这里有一个完整的时间戳,我需要半智能地了解如何从组中选择要显示的日志消息,但这并不太糟糕。此外,我正在构建它,让您选择要监视的应用程序,然后显示特定日期最多50条的每条消息

这让我明白了一些道理


我仍然希望对更一般的问题有一个好的答案:如何联合许多重要的消息,其中丢失消息可能是一个问题?

如果您正在构建一个具有不可丢失通知的系统,那么使用XMPP(ApacheQ支持的其他协议之一)的发布子机制,或者类似的东西更适合联合机制。您需要对生成通知的系统和使用通知的系统之间的耦合进行某种度量,以确保使用者不会错过通知


您可以使用RSS或Atom作为传输格式来实现这一点,但这可能不是常见的用例;您需要根据消费者以及之前看到的通知来更改显示的通知。

如果您正在构建一个包含不能错过的通知的系统,那么使用XMPP(ApacheQ支持的其他协议之一)的发布子机制,或者类似的东西更适合联合机制。您需要对生成通知的系统和使用通知的系统之间的耦合进行某种度量,以确保使用者不会错过通知


您可以使用RSS或Atom作为传输格式来实现这一点,但这可能不是常见的用例;您需要根据消费者和之前看到的通知来更改显示的通知。

在这种情况下,它更像是经理的仪表盘:今天在支持方面投入了多少工作,现在日志中是否有任何问题,而当我们早上第一次到达时,作为衡量夜间批处理作业出了什么问题的指标。

在这种情况下,它更像是经理的仪表盘:投入了多少工作
为了支持今天,现在日志中是否有任何紧迫的内容,以及当我们早上第一次到达时,是否有任何紧迫的内容来衡量一夜之间批处理作业出现了什么问题。

我将使提要成为一个静态文件,您可以轻松地为数千个此类文件提供服务,并定期重新生成。然后你有更广泛的选择,因为它不必运行在秒以下,它甚至可以运行几分钟。用户仍然可以获得完美的下载速度和合理的更新速度。

我会让提要成为一个静态文件,您可以轻松地为数千个这样的提要提供服务,并定期重新生成。然后你有更广泛的选择,因为它不必运行在秒以下,它甚至可以运行几分钟。用户仍然可以获得完美的下载速度和合理的更新速度。

我会尽可能多地分割提要,让用户根据需要重新组合它们。如果我这样做的话,我可能会考虑使用Django和syndication框架

Django的模型可能能够处理表示您关心的表的数据结构的问题

你可以有一个可以捕获所有内容的URL,比如:r'/rss/?\w*?/+'我认为这可能会起作用,但我现在无法测试它,所以它可能并不完美

这样,您可以使用“编辑”之类的URL来取消示例URL的自动链接:

http://feedserver/rss/batch文件输出/ http://feedserver/rss/support-tickets/ http://feedserver/rss/batch file output/support tickets/前两个合并为一个 然后在视图中:

def get_batch_file_messages():
    # Grab all the recent batch files messages here.
    # Maybe cache the result and only regenerate every so often.

# Other feed functions here.

feed_mapping = { 'batch-file-output': get_batch_file_messages, }

def rss(request, *args):
    items_to_display = []
    for feed in args:
        items_to_display += feed_mapping[feed]()
    # Processing/returning the feed.

拥有独立的、可链接的提要意味着用户可以一次订阅一个提要,或者将他们关心的提要合并到一个更大的提要中。无论什么对他们来说更容易阅读,他们都可以做。

我会尽可能多地分割提要,让用户根据需要重新组合它们。如果我这样做的话,我可能会考虑使用Django和syndication框架

Django的模型可能能够处理表示您关心的表的数据结构的问题

你可以有一个可以捕获所有内容的URL,比如:r'/rss/?\w*?/+'我认为这可能会起作用,但我现在无法测试它,所以它可能并不完美

这样,您可以使用“编辑”之类的URL来取消示例URL的自动链接:

http://feedserver/rss/batch文件输出/ http://feedserver/rss/support-tickets/ http://feedserver/rss/batch file output/support tickets/前两个合并为一个 然后在视图中:

def get_batch_file_messages():
    # Grab all the recent batch files messages here.
    # Maybe cache the result and only regenerate every so often.

# Other feed functions here.

feed_mapping = { 'batch-file-output': get_batch_file_messages, }

def rss(request, *args):
    items_to_display = []
    for feed in args:
        items_to_display += feed_mapping[feed]()
    # Processing/returning the feed.

拥有独立的、可链接的提要意味着用户可以一次订阅一个提要,或者将他们关心的提要合并到一个更大的提要中。无论什么对他们来说更容易阅读,他们都能做到。

我知道有很多,但我不确定我从这个问题上理解了为什么需要以特殊的方式来处理?你是想减少表上的点击率,提高feed用户的使用效率,还是…?我知道有数量,但我不确定我从这个问题上理解为什么需要以特殊的方式处理?您是否希望减少该表上的点击率,提高feed消费者的用户体验,或者。。。?