我正在构建一个 Java 应用程序,它将在电池供电、支持蜂窝的设备(不是手机)上运行,并且需要向服务器发送命令。这些命令采用 JSON 对象的形式,因此可以轻松地进行序列化和反序列化。
由于互联网连接可能不完全可靠,并且设备的电池可能会耗尽,我需要一种将命令保存到磁盘的方法,以防电池耗尽(在某些情况下,这可能会导致电源在没有警告的情况下关闭)。
这些命令每条可能“值”几欧元,所以我采取一切预防措施(当然在一定范围内)以确保没有命令丢失是很重要的。发送两次命令不是问题,因为每个命令都带有 GUID 标记,并且我的服务器将确保忽略重复项。队列可能包含多达一千条命令,但大多数时候它是空的。
我真正在寻找的是一个类似队列(FIFO)的对象,它有一个后备文件存储,可以在瞬间崩溃中幸存下来。我需要能够查看下一行,并在处理完成后将其删除。
到目前为止,我一直在使用 MapDB 3.0,但是文档对于如何创建类似队列的对象有点混乱。此外,对于我想要实现的目标来说,这似乎有点多