簡體   English   中英

在Tomcat或Jetty上的Spring Web應用程序控制器中基於事件的編程

[英]Event based programming inside a Spring web app controller on Tomcat or Jetty

HTTP控制器(Spring)獲取請求並進行阻止調用。 阻止呼叫結束后,控件將返回到控制器。

在這一點上,我不想將響應發送回客戶端,而是等待另一個事件(例如,某些處理的完成)發生。 一旦該事件發生,我需要一種方法來從事件中收集數據,然后返回帶有此數據的HTTP響應。

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

    return HTTPResponse(); 

}

您不會在一個請求中就這樣做,因為這最終可能會超時,直到那時才不會向客戶提供正在發生的事情的反饋。

取而代之的是,您將立即顯示一個異步(可能是每個AJAX)輪詢服務器以查看結果是否可用的頁面。

因此,第一個請求將返回一個ID,該ID將在第二個(AJAX)請求中用於查找結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM