有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中查找crashsafe队列的文件

我正在构建一个Java应用程序,它将运行在电池供电、支持手机的设备(顺便说一句,不是手机)上,并且需要向服务器发送命令。 这些命令是JSON对象的形式,因此可以轻松地进行序列化和反序列化

由于互联网连接可能不完全可靠,并且设备的电池可能耗尽,因此我需要一种方法将命令保存到磁盘,以防电池耗尽(在某些情况下,可能会导致电源在没有警告的情况下关闭)

这些命令可能“值”几欧元一个,所以我采取一切预防措施(当然在一定范围内)确保没有命令丢失是很重要的。发送两次命令不是问题,因为每个命令都带有GUID标记,我的服务器将确保忽略重复的命令。队列可能包含多达1000条命令,但大多数情况下它将是空的

我实际上要寻找的是一个类似队列(FIFO)的对象,它有一个备份文件存储,可以在瞬间崩溃中生存。我需要能够窥视下一行,并在处理完成后删除它

到目前为止,我一直在使用MapDB 3.0,但是文档中对于如何创建类似队列的对象有点混乱。除此之外,这对我想要达到的目标来说似乎有点过分


共 (1) 个答案

  1. # 1 楼答案

    你可以有一个文件目录。每条消息一个文件。文件名可以是时间戳,也可以是记录订单的名称。一个包含1000个文件的目录仍然可以正常运行

    关闭文件后,应该将其保存到磁盘上,尽管任何操作的确切安全程度将取决于设备及其实现方式