1

HTTP 控制器(Spring)获取请求并进行阻塞调用。一旦阻塞调用结束,控件就会返回到控制器。

在这一点上,我不想将响应发送回客户端,而是等待另一个事件(例如,完成某些处理)发生。一旦该事件发生,我需要一种方法来从事件中收集数据,然后返回带有该数据的 HTTP 响应。

HTTPController doSomething( HTTPRequest ) 
{
    makeBlockingCall();  
    waitForEventToHappen();
    collectDataFromEvent();

    return HTTPResponse(); 

}
4

1 回答 1

0

您不会在一个请求中执行此操作,因为这最终可能会超时,并且在此之前不会向客户提供正在发生某事的反馈。

相反,您将立即显示一个页面,该页面以异步方式(可能是每个 AJAX)轮询服务器以查看结果是否已经可用。

因此,第一个请求将返回一个 ID,该 ID 将在第二个 (AJAX) 请求中用于查找结果。

于 2012-05-12T10:41:34.003 回答