带读卡器的循环缓冲器

时间:2011-05-26 08:15:35

标签: java logging fifo

我需要一个支持可搜索读者的循环缓冲区实现。我的用例:

在我的代码中,我收集了日志消息。最终,用户可能会访问一个显示格式很好的页面。为了确保消息不填充RAM,我需要一个固定大小的FIFO结构。如果用户长时间未访问该页面,则会丢弃邮件。没关系。

只要用户停留在页面上,就应该在页面上附加新的日志消息。通过JavaScript,用户可以定义要保留的消息数量。这完全独立于我的应用程序中的缓冲区大小。所以我需要一个关于数据结构的读者,我可以使用它来迭代任何新元素。

如果用户重新加载页面或第一次加载页面,我需要将阅读器设置为FIFO中最旧的元素。

添加消息后,必须更新阅读器。如果浏览器无法足够快地获取新消息,则读取器最终应指向FIFO中最旧的消息。这意味着用户可能会错过几条消息。这不完美,但它应该是一个不常见的情况。如果读者可以告诉我“错过5条消息”,那将是完美的,但我可以没有那个生活。

您是否知道提供此功能的现有实施?

1 个答案:

答案 0 :(得分:0)

尝试http://commons.apache.org/collections/,查看那里的循环缓冲区。