2012-04-17 3 views
0

장고 + apache2 + mod_wsgi3.3을 사용하여 몇 가지 사항을 테스트하는 동안. 결과를 정기적으로 산출함으로써 두 가지 다른 결과를 찾습니다. 내장 모드와 데몬 모드 사이.mod_wsgi의 아파치 작은 문자열을 생성하지 않는 데몬 모드

WSGIDaemonProcess가없는 임베드 모드로 시도한 경우 WSGIProcessGroup 지시문이 사용되었습니다. 아래에 언급 된 함수는 결과를 하나씩 출력하며, 2 초의 수면 후에 모든 숫자가 브라우저보기에 인쇄됩니다.

def yielder(request): 
    gen = testYielding() 
    return HttpResponse(gen) 

def testYielding(): 
    yield "3" 
    time.sleep(2) 
    yield "4" 
    time.sleep(2) 
    yield "5" 
    time.sleep(2) 
    yield "6" 
    time.sleep(2) 
    yield "7" 

에 DaemonMode는 함께이지만,이 도면은 차례로 동일한 항복 함께 아닌 인쇄 모든 자리 완전한 반응 후 8 초 후의 대조 데이터를 응답한다.

이 문제가 해결 되었습니까? 데몬 모드 응답이 임베디드 모드처럼 생성되는지 확인하는 방법이 있습니까?

답변

0

데몬 프로세스에서 발생하는 플러시는 프록 싱을 수행중인 Apache 하위 작업자 프로세스로 전송되지 않습니다. 결과가 클라이언트에 즉시 전달되는지 여부는 부분적으로 등록한 Apache 출력 필터에 달려 있습니다. 플러싱하기 전에 응답 데이터를 버퍼링하려는 출력 필터가있는 경우이 문제가 표시됩니다.

따라서 Apache 출력 필터가 무엇인지 자세히 살펴 봐야합니다. 이를 변경할 수 있다면 임베디드 모드를 사용하는 것 외에는 선택의 여지가 없습니다.

관련 문제