实现基于文件的队列

ser*_*man 13 java queue persistent

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

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

那里有没有开源解决方案?在我自己开始实施之前,我没有发现任何事情,但我认为我会在此列表中查找建议.

谢谢!

Ale*_*age 6

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

(感谢Brian McCallister的"The Long Tail Treasure Trove"指点我).

  • 我现在正在看这个库,虽然API很简单,但它似乎不能处理来自多个进程的同一存储的并发读/写.OP可能不需要该功能,但想指出它.(或者我刚刚遇到记录的写入问题,可能会破坏非日志文件系统上的文件?) (3认同)

Rom*_*eau 5

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