우리는 우리의 응용 프로그램 서버에 대해 tomcat에서 실행 중입니다.출력 스트림을 닫은 후 Servlet 요청은 어떻게됩니까?
우리는 PDF를 생성하고 브라우저로 리턴하는 서블릿을 가지고 있습니다. 그런 다음 임시 PDF 파일을 삭제합니다.
문제는 우리가 삭제에 약간의 타이밍 어려움을 겪고 있다는 것입니다. 우리 팀의 누군가는 파일을 삭제하기 전에 20 초를 기다려야하므로 Thread.sleep (20000)을 사용하기로 결정했습니다.
재미있는 점은 출력 스트림을 닫고 20 초 동안 기다린 다음 파일을 삭제하고 doGet()을 종료한다는 것입니다.
내 질문은 : 출력 스트림이 응답에서 닫히기 때문에 기다리기 전에 즉시 브라우저로 돌아오고 추가로 20 초 동안 성능 문제가 있습니까? 예를 들어, 네트워크 연결 또는 일부를 연결합니까?
tomcat이 임시 파일을 자동으로 삭제하지 않습니까? 그리고 당신이 갖는 타이밍 어려움은 무엇입니까? pdf가 서블릿에 의해 작성되고 스트림이 닫히면 파일을 즉시 삭제할 수 있습니다. – Thihara
왜 PDF 파일을 디스크 파일 시스템에 저장해야합니까? 왜 그냥'response.getOutputStream()'에 직접 쓰지 않고'new FileOutputStream()'을 쓰는 것이 좋을까요? 파일이 열려 있으면 파일을 삭제할 수 없습니다. 아마도 PDF를 디스크에 쓴 후'FileOutputStream # close()'를 잊어 버렸을 것입니다. – BalusC
글쎄, 서버의 작업자 스레드가 20 초 동안 점유되었습니다. 방화벽 연결을 사용하여 연결된 네트워크 연결을 찾아 낼 수 있습니다. – Ben