春ブーツアプリのロングポーリングRESTエンドポイントを実装する方法?

パシャ:

すべての最新マニュアルを共有したり、どのように最新の春(春ブーツ)とRESTロングポーリングエンドポイントを実装するために、ここで説明するよう、あなたはとても親切だろうか?

私はこの時点で発見したことすべてが、かなり時代遅れで、数年前に発行されました。

だから、私は疑問を提起してきたまだ良いアプローチロングポーリングのですか?私はそれがchess.comに使われています知っています

Golam Mazidのsajib:

長い間使用することができ、要求を引っ張るためDeferredResultあなたはDeferredResult応答を返すとき、要求スレッドは無料で、ワーカースレッドによって、この要求ハンドルになります。ここでは一例です。

@GetMapping("/test")
    DeferredResult<String> test(){
        Long timeOutInMilliSec = 100000L;
        String timeOutResp = "Time Out.";
        DeferredResult<String> deferredResult = new DeferredResult<>(timeOutInMilliSec,timeOutResp);
        CompletableFuture.runAsync(()->{
            try {
                //Long pooling task;If task is not completed within 100 sec timeout response retrun for this request
                TimeUnit.SECONDS.sleep(10);
                //set result after completing task to return response to client
                deferredResult.setResult("Task Finished");
            }catch (Exception ex){
            }
        });
        return deferredResult;
    }

この要求で10秒を待って応答を与えます。あなたは100以上の秒を待っていれば、あなたは、タイムアウト応答を取得します。

見て、この

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=200276&siteId=1