基于Java中的Request在后台运行servlet

时间:2015-06-11 18:54:39

标签: java servlets

我有两个应用服务器说A和B.我将从A向应用服务器B的特定servlet发送请求并返回。我不想从B获得任何响应。但是在应用服务器B上,根据请求和该请求的信息(比如用户名),我想搜索数据并将其写入文件。

  • 我尝试使用shell脚本执行
  • 尝试线程

但是Java的执行时间太长了。

简单来说,如何从应用服务器A向应用服务器B发送许多GET请求,因此应用服务器B将在其后台执行而A不需要等待响应。

1 个答案:

答案 0 :(得分:0)

您尝试的内容并不是很清楚,但可以轻松完成。我建议用这种方式构建它:

  1. 如上所述,服务器A对服务器B上的特定servlet执行GET
  2. 您需要在服务器B上执行的工作,我们将其称为作业,它实际上是使用服务器A发送给您的用户名从数据库中读取内容,然后在文件上写入内容。< / LI>
  3. 服务器B上的servlet将在预先配置的Runnable AND 返回上排队新作业(ThreadPool,其中包含您的职务代码)立即

    我想您希望按顺序执行作业,因此只需创建一个大小为1的ThreadPool(使用一个接一个地执行作业的单个线程)。

  4. 对于你想要做的事情,这应该是一个足够好的架构。

    如果您的服务器A GET呼叫仍然阻止,可能问题与您执行此操作的方式有关。如果您注意到GET持续时间似乎始终相同,则可能是您未正确配置HttpURLConnection(依赖于http服务器,例如某些配置可能需要额外的标头来禁用默认的保持活动连接)。

    另外,请记住始终在urlconnection块中断开urlconnectionfinally通常会重复使用,这会释放资源)。