我有一个 Java RMI 系统。情况很典型:客户端调用服务器的一个方法。 客户端有一个内部计时器,所以如果服务器没有按时完成(客户端指定的时间),则客户端必须做其他事情。
因此,客户端必须在特定时间内等待服务器完成其工作,以防服务器未完成做其他事情(这无关紧要)。 我该怎么做?
我不关心连接超时等等,假设服务器和客户端通过 RMI 连接并且一切都很好,只是服务器的工作可能是计算密集型的并且可能需要一些时间。
非常感谢!
最佳答案
在另一个线程上进行 RMI 调用。让发起线程等待特定长度的时间以等待来自 RMI 调用线程的响应。
或者,让服务器 RMI 线程将任务委托(delegate)给工作线程。如果工作线程没有足够快地响应,则返回调用者。
关于Java RMI : Implement a time out in the client code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302286/