2008-09-12 21 views
1

本周我一直在使用RSS订阅源,而对于我的下一个技巧,我想为我们的内部应用程序日志构建一个。我们有一个集中的数据库表,我们无数的批量和内联网应用程序用于发布日志消息。我想创建一个关于此表的RSS馈送,但我不确定如何处理音量 - 即使在正常的一天,每天可能会有数百个条目。一个特殊的让你想要戒烟的日子可能会有几千人。有什么想法吗?如何构建繁忙的RSS订阅源

+0

我知道有卷,但我不确定我从这个问题理解为什么需要以特殊方式处理?您是否希望减少该桌上的点数,提高用户对饲料消费者的耐性,或者......? – busse 2008-09-12 21:38:57

回答

0

不知道你的申请,我不能提供具体的建议。

也就是说,在这些系统中有一个严重程度很常见。您可以将查询字符串参数粘贴到指定严重性的URL末尾。如果设置为“DEBUG”,无论多么微不足道,您都会看到每一个事件。如果将其设置为“致命”,则只能看到严重程度为“系统故障”的事件。

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

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

0

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

这让我感到合理。

我仍然希望对更通用的问题有一个很好的答案:“你如何联合许多重要的信息,在哪里丢失信息可能是一个问题?”

2

如果您正在构建一个不能错过通知的系统,那么pub-sub机制(使用XMPP,ApacheMQ支持的其他协议之一,或类似的方法)将更适合于联合机制。您需要在生成通知的系统和正在使用通知的系统之间进行一些耦合度量,以确保消费者不会错过通知。 (您可以使用RSS或Atom作为传输格式来完成此操作,但这可能不是常见用例;您需要更改基于消费者显示的通知以及先前看到的通知)。

0

在这种情况下,它更像是一个经理人的仪表板:今天有多少工作投入了支持,现在有没有什么紧迫的日志,以及当我们第一次到达早晨时,作为衡量哪里出了问题批量工作过夜。

3

我会做饲料静态文件(你可以很容易地服务于千元以下),定期再生。那么你有更广泛的选择,因为它不需要在第二个以下运行,甚至可以运行几分钟。而且用户仍然得到完美下载速度和合理的更新速度。

1

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

Django的模型可能可以处理表示您关心的表的数据结构。

你可以有一个URL捕捉所有的东西,如:r'/rss/(?(\w*?)/)+'(我认为这可能有效,但我现在不能测试它,所以它可能不完美)。

这样,你可以使用像URL(编辑取消例如URL的自动链接):

  • 的http:// feedserver/RSS /批处理文件输出/
  • HTTP://feedserver/RSS /支票/
  • HTTP:// feedserver/RSS /批处理文件输出/支撑门票/(所述第一合二为一的)

然后在视图:

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. 

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