我有两个应用服务器说A和B.我将从A向应用服务器B的特定servlet发送请求并返回。我不想从B获得任何响应。但是在应用服务器B上,根据请求和该请求的信息(比如用户名),我想搜索数据并将其写入文件。
但是Java的执行时间太长了。
简单来说,如何从应用服务器A向应用服务器B发送许多GET请求,因此应用服务器B将在其后台执行而A不需要等待响应。
答案 0 :(得分:0)
您尝试的内容并不是很清楚,但可以轻松完成。我建议用这种方式构建它:
服务器B上的servlet将在预先配置的Runnable
AND 返回上排队新作业(ThreadPool
,其中包含您的职务代码)立即强>
我想您希望按顺序执行作业,因此只需创建一个大小为1的ThreadPool
(使用一个接一个地执行作业的单个线程)。
对于你想要做的事情,这应该是一个足够好的架构。
如果您的服务器A GET呼叫仍然阻止,可能问题与您执行此操作的方式有关。如果您注意到GET持续时间似乎始终相同,则可能是您未正确配置HttpURLConnection
(依赖于http服务器,例如某些配置可能需要额外的标头来禁用默认的保持活动连接)。
另外,请记住始终在urlconnection
块中断开urlconnection
(finally
通常会重复使用,这会释放资源)。