2016-09-18 67 views
-1

我正在构建一个Java应用程序,该应用程序将在电池供电的支持蜂窝的设备(顺便说一下不是移动电话)上运行,并且需要将命令发送到服务器。 这些命令采用JSON对象的形式,因此可以轻松进行序列化和反序列化。由于互联网连接可能不完全可靠,并且设备的电池可能用完,我需要一种将我的命令保存到磁盘的方式,以防电池电量耗尽(在某些情况下,这可能会导致电源供电不足没有警告关掉)。在java中寻找安全队列

命令可以'值得'几块欧元一块,所以重要的是我采取一切预防措施(在一定的范围内),以确保没有命令丢失。两次发送命令不是问题,因为每个命令都使用GUID进行标记,并且我的服务器将确保忽略重复项。该队列可能包含多达一千条命令,但大多数情况下它将是空的。

我实际上在寻找的是一个队列状(FIFO)对象,它具有一个支持文件存储,可以在瞬间崩溃时生存下来。我需要能够看到下一行,并在处理完成后将其删除。

到目前为止,我一直在使用MapDB 3.0,但是关于如何创建一个队列类对象,文档有点混乱。此外,它似乎有点多我想要实现的

回答

1

你可以有一个文件目录。每封邮件一个文件。文件名可以是记录命令的时间戳或名称。具有1000个文件的目录应该仍然可以正常运行。

一旦你关闭了文件,它应该被保存到磁盘上,尽管确切的安全操作将取决于设备以及它是如何实现的。