최근 문제가 되고 있는 서버 스레드 중단 문제 해결

우리의 응용 프로그램은 인터넷 하드디스크와 같은 다운로드 도구로 사이트의 방문량이 비교적 적지만 문제가 우리를 계속 괴롭히고 있다. 바로was 서버가 일정 시간 간격으로 라인을 끊고 시간이 길고 짧으며 5분 안에 다시 시작하는 것이다.
일반적인 경우:
  1.응용 서버 열기 사용자 다운로드 알림 끊기 다운로드량 감소 알림 N이 오랫동안 활동하지 않아was가 설정한 밸브 값을 초과하여 방출됩니다.
  2.응용 서버 개설 - 사용자 다운로드 - 메시지 라인 끊기 - 다운로드량이 계속 증가하거나 상승하고, 라인 끊기가 점점 많아지고 있습니다. was는 라인 밸브 값을 자동으로 조정합니다. 조정할 수 없습니다. 끊습니다.
검색을 통해 기본적인 확인 문제는 사용자가 브라우저로 파일을 다운로드할 때 네트워크가 순식간에 끊기거나 다른 원인으로 인해 이상이 발생했지만 다운로드 라인이 방출되지 않았기 때문이다.브라우저를 열고 다운로드할 수 있으며, 절반까지 내려가면 브라우저를 끄고 이 현상을 모의할 수 있습니다.

  byte[] b = new byte[1024];
  ...
  while ((len = in.read(b)) != -1) {
    out.write(b, 0, len);
  }
  ...

로 수정

  byte[] b = new byte[1024];
  ...
  while ((len = in.read(b)) != -1) {
    Thread.sleep(50);
    Thread.yield();
    out.write(b, 0, len);
  }
  ...

일부 사람들이 건의하는 방법은 서버에서 라인에 시간 제한을 하고 시간을 초과하면 끄는 것이다.그러나 이렇게 하면 비교적 낮은 인터넷 속도로 큰 파일을 다운로드하는 사용자는 또 영향을 받을 수 있다.따라서 위의 방법은 스레드 처리를 한동안 멈추고 CPU 제어권을 양보하여 막히지 않도록 하는 것이다.
이 방법은 아마도 가장 좋은 방법은 아닐 것이다. 그러나 적어도 비교적 적합한 것이다. 현재 서버에서 라인이 끊기는 현상은 이미 크게 줄어들었고 추가로 한 마디를 추가했다

if (request.getHeader("Range") != null) {
  ErrShow(request, response, " !");
  return;
}

이렇게 하면 다운로드 도구를 사용하는 다중 스레드 다운로드를 피할 수 있다.
 
어떤 분이 더 좋은 해석이 있으신지 말씀해 주시고 함께 토론해 주십시오.
 
방금 수호 라인으로 시간 초과 라인을 처리하는 해결 방안을 보았지만, 또 다른 기술 주관자가 극력 반대했다. 왜 사용할 수 없는지 설명해 줄 수 있는 사람은 누구입니까?수호 라인은 어떤 상황에서 사용할 수 있습니까?감사합니다.

좋은 웹페이지 즐겨찾기