实现基于文件的队列

2022-09-04 02:05:11

我有一个内存边界队列,其中多个线程对对象进行排队。通常,队列应由处理队列中项目的单个读取器线程清空。

但是,队列可能会填满。在这种情况下,我想在磁盘上保留任何其他项目,这些项目将由另一个后台读取器线程处理,该线程扫描目录中的此类文件并处理文件中的条目。我熟悉Active MQ,但更喜欢更轻量级的解决方案。如果不严格遵循“FIFO”是可以的(因为持久化的条目可能会被无序处理)。

有没有开源解决方案?我没有找到任何东西,但我想在我自己开始实施之前,我会ping这个列表以获取建议。

谢谢!


答案 1

看看 http://square.github.io/tape/,以及它令人印象深刻的QueueFile。

(感谢布莱恩·麦卡利斯特(Brian McCallister)的《长尾宝库》(The Long Tail Treasure Trove)为我指明了这一点)。


答案 2

您可以使用类似 SQLLite 之类的东西来存储对象。


推荐