我試圖實現由RMI管理的ID鎖定系統。非常多的情況是,當客戶端輸入一個ID時,它會將該ID發送到RMI服務器,RMI服務器將其存儲在一個列表中,以及客戶端ID和循環計數器。Java RMI心跳時間過程循環
服務器在30秒後將遞增所有的週期計數器。除非客戶端沿Unlock消息發送消息,否則客戶端將沿着Heartbeat發送消息,該消息會將該週期計數器更新回0.如果循環計數器> = 3,則服務器將假定客戶端已不正確地斷開連接並釋放鎖定ID。
我一直在網上進行研究,並且發現了很多非常具體的做法,但太多看起來太模糊,或者太針對一個項目的需求。我想我對如何做到這一點有一個大致的想法,但我想直觀地看到:
1 -大多數實現都會在獨立線程的無限循環中發生這種「循環更新」邏輯。它是否正確?它看起來像我的RMI服務器的主類很少發生,也許我可以在那裏實現循環。
2 -如果確實線程是正確的路線,我何時啓動線程?有沒有什麼特別的方法需要完成?我在網上查找並發現許多網站都說使用線程,但沒有一個顯示他們執行線程的好地方。
感謝您提供的任何幫助。我對RMI仍然很滿意,所以我感謝你的耐心。
您應該使用Unreferenced接口作爲其中的一部分。它爲你做活性檢查。 – EJP
我在Unreference接口上閱讀。看起來只有在沒有更多客戶端連接到服務器時纔會觸發。每當服務器被任何客戶端取消引用時,我都會需要它啓動。 – UtMan88