首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Axis2,使用Thread.sleep进行阻塞

Axis2,使用Thread.sleep进行阻塞
EN

Stack Overflow用户
提问于 2010-07-02 09:34:19
回答 2查看 594关注 0票数 1

我目前正在使用axis2编写一个Java WebService。然而,一个特定的请求需要我在另一个服务器上持续轮询一个状态大约3-10秒的时间。

我想使用Thread.sleep来做轮询,就像每隔500mri轮询3秒。它有没有像性能问题这样的暗示,或者有人能提出一个更好的想法?

编辑我的架构是这样的

客户端<-> axis2 <->服务器轮询3-10秒

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-03 06:23:47

有许多不同的选项:

如果您可以更改客户端,那么将等待转移到客户端可能是一个好主意。这意味着服务器不会有大量的线程挂起。

因此,您将有两个web服务,一个用于初始化请求,另一个用于获取结果。客户端(不是axis服务器)将调用第一个web服务,然后可能多次调用第二个web服务。

这样做的好处是,您不必对服务器中的线程做任何工作(这大大简化了工作)。线程代码在客户端。

如果您最终在服务器上休眠,请确保您有足够的线程,如果您正在使用Tomcat,请参阅Best practices for configuring Apache / Tomcat

票数 1
EN

Stack Overflow用户

发布于 2010-07-02 10:33:14

另一种模式是让原始调用者返回一个received_ok标志,然后在他们从第二个服务器返回时将结果存储在您的服务器上。然后,第一个服务器将重新连接,然后您可以返回结果,也可以返回它们尚未返回的事实。这样做的好处是,您可以将轮询委托给另一个实例,而不会占用原始服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3162763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档