java - Axis2,使用Thread.sleep进行阻塞

标签 java thread-safety apache-axis sleep

我目前正在使用 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/

相关文章:

java - 使用 Spring Data JPA 访问数据时,会在任一表上创建空列

java - Android View 的 HTML 5 数据属性的等价物

java - 如何修复 java.util.concurrent.CompletionException : java. lang.StackOverflowError

java - Web 服务 SOAP 集成

java - Axis2 和 Web 服务

java - axis1 和 axis2 客户端 SOAP 日志记录 - ADB 绑定(bind)

java - 为什么这个方法的时间复杂度是2*O(n log n) + O(m log m)?

java - 为什么我无法获取 org.h2.Driver?我用 maven

Python-C api并发问题

带回调的 Java 同步