이것은 다소 까다로운 질문입니다.파이썬 Mod_WSGI 출력 버퍼
저는 python에서 mod_wsgi로 작업 중이며 지속적으로 HTML을 생성하는 출력 버퍼를 만들고 싶습니다 (페이지로드가 완료 될 때까지).
지금은 응용 프로그램() 함수가 페이지 코드에 대해 별도의 '페이지'스레드를 생성 한 다음 바로 직후에 파이썬의 큐 라이브러리를 사용하여 출력 버퍼에 대한 연속 루프를 실행하도록 스크립트를 설정했습니다.
이 방법을 설정하는 더 좋은 방법이 있습니까? Output Buffer를 페이지 대신에 쓰레드라고 생각했는데, 문제는 Application() 함수가 Apache에게 HTML을 전달할 수있는 유일한 함수라는 것입니다. (필자가 말할 수있는 한, 이 아이디어를 불가능하게 만든다).
내 현재 설정에서 볼 수있는 단점은 오류가 발생했을 때 버퍼를 잠시 중단하고 페이지 스레드가 계속 잠기지 않고 종료 할 수 없다는 것입니다.
(mod_wsgi에는 출력 버퍼를 빌드 할 필요가 없으므로 전체 페이지를로드 한 다음 출력을 한 번만 보내면 훨씬 느린 페이지로드가 발생합니다.)
청크 분할 웹 사이트를 전송할 때마다 페이지로드가 시작되기 전에 컴파일이 완료 될 때까지 기다리지 않고 항상로드가 빨라지므로이 방법이 맘에 들지 않습니다. 최종 결과는 정체 된로드 시간입니다. – Ian
또한 오류로 인해 출력이 0이되므로 (디버깅이 매우 까다로울 수 있기 때문에) 개발이 더 성가 시게 만듭니다. – Ian
@Ian - 것은 어쨌든 TCP/IP에 의해 페이지가 청크 될 것입니다.페이지를 생성하는 데 시간이 오래 걸린다면 페이지를 청크하는 것이 합리적입니다. 그러나 대부분의 페이지는 그렇지 않습니다. 대부분의 경우, 한 페이지가 네트워크를 통해 전송되기 전에 수백만 또는 수십억 번이 아니라면 문자 그대로 수천 페이지를 생성 할 수 있습니다. 페이지를 생성하기 위해 데이터베이스를 쿼리하는 경우에도 마찬가지입니다. 다른 말로하면, 얻을 수있는 속도 이점은 무시할 수 없을 것입니다. 따라서 가장 단순한 작업을 수행하는 것이 좋습니다. –