2016-09-18 51 views
-1

我正在構建一個Java應用程序,該應用程序將在電池供電的支持蜂窩的設備(順便說一下不是移動電話)上運行,並且需要將命令發送到服務器。 這些命令採用JSON對象的形式,因此可以輕鬆進行序列化和反序列化。由於互聯網連接可能不完全可靠,並且設備的電池可能用完,我需要一種將我的命令保存到磁盤的方式,以防電池電量耗盡(在某些情況下,這可能會導致電源供電不足沒有警告關掉)。在java中尋找安全隊列

命令可以'值得'幾塊歐元一塊,所以重要的是我採取一切預防措施(在一定的範圍內),以確保沒有命令丟失。兩次發送命令不是問題,因爲每個命令都使用GUID進行標記,並且我的服務器將確保忽略重複項。該隊列可能包含多達一千條命令,但大多數情況下它將是空的。

我實際上在尋找的是一個隊列狀(FIFO)對象,它具有一個支持文件存儲,可以在瞬間崩潰時生存下來。我需要能夠看到下一行,並在處理完成後將其刪除。

到目前爲止,我一直在使用MapDB 3.0,但是關於如何創建一個隊列類對象,文檔有點混亂。此外,它似乎有點多我想要實現的

回答

1

你可以有一個文件目錄。每封郵件一個文件。文件名可以是記錄命令的時間戳或名稱。具有1000個文件的目錄應該仍然可以正常運行。

一旦你關閉了文件,它應該被保存到磁盤上,儘管確切的安全操作將取決於設備以及它是如何實現的。