我有一個RMI客戶端測試RMI服務器是否正在運行並且可以到達。有沒有一種有效的方法來測試RMI服務器是否啓動?
目前正進行每隔幾秒鐘這個測試:(ping()
是一個簡單的啞RMI調用)
try {
rMIinstance.ping();
} catch (RemoteException e) {
getInstanceRegister().removeInstance(rMIinstance);
}
如果實例是離線的,我得到約1分鐘後一個
java.net.ConnectException: Connection timed out
異常,表明服務器處於脫機狀態。
但是代碼掛起了一分鐘,這對我們來說已經很長了。 (我不想更改超時設置。) 是否有一種方法可以更快地執行此測試?
只是一個小提示:通常你會重用'ExecutorService',因爲它的目的是「緩存」線程。 –