문제

나 개발 Django 사이트입니다.나는 나의 모든 변경 내용,라이브 서버에서 그냥 있기 때문에 쉽게하는 방법입니다.문제,모든 이제 다음 그것을 좋아하는 것을 캐시 하나의*.py 파일에서 일하고 있어요.때로는 경우 새로 고침을 많이,그것은 앞뒤로 전환이 이전 버전의 페이지를 최신 버전입니다.

나의 설정이 더 많거나 적은 다음과 같 what's 에서 설명한 장고 자습서: http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/#howto-deployment-modwsgi

그것은 이것을 하고 있기 때문에 그것의 발사 다수의 인스턴스의 WSGI 처리기에 따라 처리기 http 요청을 보내지,나는 받을 수 있는 다른 버전의 페이지입니다.아파치를 다시 시작하는 것 같은 문제를 해결,하지만 그것이다.

정말에 대해 많이 알지 못 WSGI 또는"미들웨어"또는 그 요청을 처리 물건입니다.에서 온 PHP 배경,그것은 모든 그냥 작동합니다:)

어쨌든,무엇이 좋은 방법이 이 문제를 해결하기 위해 최선을 다하?이 실행 WSGI handler"daemon mode"을 완화하는 문제입니까?그렇다면,나는 어떻게 그것을 실행하는 프로그램을 데몬으로 모드가 있습니까?

도움이 되었습니까?

해결책

라이브 서버에서 코드를 편집하지 않음 으로써이 문제를 해결할 수 있습니다. 진지하게, 그것에 대한 변명은 없습니다. 버전 컨트롤을 사용하여 로컬로 개발하고, 필요한 경우, 최신 버전을 확인하고 Apache를 다시 시작하는 소송 후 후크를 사용하여 라이브 체크 아웃에서 서버를 실행하십시오.

다른 팁

프로세스를 실행하는 프로그램을 데몬으로드되지 않습니다.여기에 무슨 일이:

mod_wsgi 산란은 여러 개의 동일한 프로세스에 들어오는 요청을 처리한 장고는 사이트입니다.이러한 각 프로세스 자체는 파이썬 통역사,그리고 처리할 수 있습 들어오는 웹 요청을 합니다.이러한 프로세스는 지속적인(그들은 가져오지 않고 아래로 찢어진 요청마다),그렇게 하나의 프로세스 처리할 수 있는 수천 명의를 요청합니다.mod_wsgi 을 처리할 수 있는 여러 웹 요청을 동시에가 있기 때문에 여러 개의 프로세스입니다.

각 프로세스의 파이썬을 로드하 모듈(사용자 지정 Python 파일)할 때마다"가져오는 모듈은"이 실행됩니다.에서의 컨텍스트 장고 이런 일이 일어나면 새로운 view.py 가 필요로 웹 요청을 합니다.면 모듈을 로드 메모리에 있고 그래서 모든 변경 사항은 파일에 반영되지 않는 과정입니다.으로 웹 요청,프로세스의 파이썬은 단순히 버전을 사용의 모듈에는 이미 로드 메모리에 있습니다.당신이 보고 있는 불일치 사이의 새로부터 각 웹 요청을 처리할 수 있습여 다른 프로세스입니다.일부 프로세스에 있는 파이썬 모듈는 동안 이전 버전의 코드는 다른 사람에 있는 그들을 나중에(이후 이러한 프로세스를 받았는 웹 요청 시).

간단한 해결책:언제든지 수정할 수 코드를 다시 시작된 아파치는 과정입니다.대부분의 시간을 실행하는 것처럼 간단합니다 루트로 쉘에서"/etc/init.d/apache2 다시 시작".내가 믿는 간단하 다시 작품뿐만 아니라,이는 더 빠른"/etc/init.d/apache2reload"

데몬 솔루션:를 사용하는 경우 mod_wsgi in daemon mode,다음 당신이해야 할 모든 당신은 터치스(unix 명령)하거나 수정할 수 wsgi 스크립트 파일입니다.을 명확히 scrompt.com's post,수정하는 파이썬 소스 코드가 발생하지 않습 mod_wsgi 다시로 귀하의 코드입니다.다시로드하는 경우에만 발생합 wsgi 스크립트 파일을 수정되었습니다.

마지막 주의:나는 단지에 대해 말했 wsgi 으로 사용하는 프로세스에 대한 단순합니다.wsgi 실제로 사용하는 스레드 풀장 안에 각 과정입니다.나는 느끼지 않았다는 이 세부사항은 관련성이 대답하지만,자세한 내용을 찾을 수 있습니다에 대해 읽어 mod_wsgi.

임베디드 모드에서 mod_wsgi를 사용하고 있기 때문에 변경 사항이 자동으로 표시되지 않습니다. Apache가 때때로 새로운 핸들러 인스턴스를 시작하여 업데이트를 포착하기 때문에 가끔씩 그들을보고 있습니다.

설명대로 데몬 모드를 사용 하여이 문제를 해결할 수 있습니다. 여기. 특히 Apache 구성에 다음 지침을 추가하려고합니다.

WSGIDaemonProcess example.com processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup example.com

django 사이트에 포함 된 mod_wsgi 호스팅에 대한 최소 정보에 의존하지 않고 mod_wsgi 문서를 읽으십시오. Partcular에서 읽으십시오.

http://code.google.com/p/modwsgi/wiki/reloadingsourcecode

이것은 Django Runserver와 동일한 종류의 소스 코드를 다시로드하는 데 사용할 수있는 모니터를 포함하여 Mod_wsgi에서 소스 코드 재 장전이 어떻게 작동하는지 정확하게 알려줍니다. 또한 Django에 적용하는 방법에 대한 이야기를보십시오.

http://blog.dscpl.com.au/2008/12/using-modwsgi-when-developing-django.html http://blog.dscpl.com.au/2009/02/source-code-reloading-with-modwsgi-on.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top