Cómo implementar sondeo largo extremo REST en la primavera de arranque de aplicaciones?

Pasha:

¿Sería tan amable de compartir cualquier manual de hasta a la fecha o explicar aquí la forma de aplicar un criterio de valoración de sondeo de descanso largo con la última primavera (primavera de arranque)?

Todo lo que he encontrado en ese momento es bastante anticuado y se publicó hace un par de años.

Por lo tanto, he criado a una pregunta de sondeo es largo todavía un enfoque bien? Sé que se utiliza en chess.com

Golam Mazid Sajib:

Durante mucho tiempo tirando petición se puede utilizar DeferredResult. cuando regrese respuesta DeferredResult, subproceso de solicitud será libre y este mango solicitud de subproceso de trabajo. Aquí está un ejemplo:

@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;
    }

En esta solicitud dar respuesta después de esperar 10 seg. si se espera más de 100 segundos obtendrá el tiempo de espera de respuesta.

Mira esto .

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=200279&siteId=1
Recomendado
Clasificación