2012-02-20 2 views
2

AppEngine에서 요청을 처리하는데 시간이 조금 걸립니다. 사용자 또는 일부 네트워크 문제가 요청을 이미 중단했는지 여부를 감지하는 방법이 있습니까? 이것은 결과 생성을 계속하는 서버로드를 스스로 절약 할 수있게 해줄 것이며, 어쨌든 아무데도 가지 않을 것입니다. AppEngine에서 클라이언트가 중단 한 요청을 감지합니다.

나는 데브 모드에서 다음을 시도했지만 둘은 (는 생산 모드에서 다르게 작동 여부를 아직 확인하지 않은 경우) 일 :

  • 가 resp.getOutputStream는 IOException가
  • 을 던지는없이 완료 여부 확인 이 여부를 확인 인터럽트는 마르쿠스

    에게, 서블릿 스레드

덕분에

PS를 보내 : 정말과 특이 적이다 이 질문에 관심이 있습니다. 앱을 재구성하여 요청을 더 빠르게하거나 중단이나 다른 일을 방지하는 방법이 아닙니다.

답변

1

아니요, 앱 내부에서이를 감지 할 수있는 방법이 없습니다. 나는 그것에 대해 걱정하지 않을 것이다.

2

App Engine에서 해당 앱을 사용할 수 있는지 여부는 알 수 없습니다. 앱 엔진은 진행 요청을 허용하지 않습니다. 핸들러/servlat가 반환 된 후 응답이 클라이언트로 전송됩니다.

0

늦어졌지만 유용 할 수 있습니다. Golang에서 Context 패키지를 사용하여 인터럽트를 감지 할 수 있습니다. 여기

가 Francesc Campoy 유용한 영상을 설명한다 : 본하다 니

https://www.youtube.com/watch?v=LSzR0VEraWw

+0

이론적 질문에 대답 할 수있다 [이 바람직 할 것이다 (// meta.stackoverflow.com/q/8259) 여기에 답변의 핵심 부분을 포함하고 참조 용 링크를 제공하십시오. 보다 나은 "링크 기반"답변을 작성하는 방법은 [here] (https://meta.stackexchange.com/a/94027/285661)를 참조하십시오. 감사! – GhostCat