我目前正在使用 axis2 编写 Java WebService。然而,一个特定的请求需要我在另一台服务器上持续轮询状态大约 3-10 秒。
我想使用 Thread.sleep 进行轮询,每 500 英里一次,持续 3 秒。它是否有任何影响,例如性能问题,或者有人可以提出更好的想法吗?
编辑 我的架构是这样的
客户端 <---> axis2 <---> 服务器轮询 3-10 秒
最佳答案
有许多不同的选项:
如果您可以更改客户端,那么将等待移至客户端可能是个好主意。这意味着服务器没有大量线程闲置。
因此,您将拥有两个 Web 服务,一个用于初始化请求,第二个用于获取结果。客户端(不是轴服务器)将调用第一个 Web 服务,然后可能多次调用第二个 Web 服务。
这样做的优点是您不必使用服务器中的线程进行任何工作(这大大简化了生活)。线程代码在客户端。
如果您最终在服务器中进行了 sleep ,请确保您有足够的线程,如果您使用的是 Tomcat,请参阅 Best practices for configuring Apache / Tomcat
关于java - Axis2,使用Thread.sleep进行阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3162763/