9

私はDjangoサイトを開発しています。ライブサーバーですべての変更を行っています。その方が簡単だからです。問題は、時々、私が取り組んでいる*.pyファイルの1つをキャッシュしたいように見えることです。更新を頻繁に押すと、ページの古いバージョンと新しいバージョンが切り替わります。

私のセットアップは、Djangoチュートリアルで説明されているものとほぼ同じです:http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/#howto-deployment-modwsgi

これは、 WSGIハンドラーの複数のインスタンスを起動しているためだと思います。また、httpリクエストが送信されるハンドラーによっては、ページのバージョンが異なる場合があります。apacheを再起動すると問題が解決するようですが、面倒です。

WSGIや「ミドルウェア」などのリクエスト処理についてはよくわかりません。私はPHPのバックグラウンドを持っており、すべてが正常に機能します:)

とにかく、この問題を解決するための良い方法は何ですか?WSGIハンドラーを実行すると「デーモンモード」で問題が軽減されますか?もしそうなら、どうすればデーモンモードで実行できますか?

4

4 に答える 4

5

Django サイトに含まれる mod_wsgi ホスティングに関する最小限の情報に頼るのではなく、mod_wsgi のドキュメントを読んでください。特に、以下をお読みください。

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

これは、mod_wsgi でソース コードのリロードがどのように機能するかを正確に示しています。これには、Django runserver が行うのと同じ種類のソース コードのリロードを実装するために使用できるモニターが含まれます。また、これを 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

于 2009-10-28T09:37:52.010 に答える
5

組み込みモードで mod_wsgi を使用しているため、変更は自動的に表示されません。Apache が更新をキャッチする新しいハンドラ インスタンスを時々起動するため、時々それらが表示されます。

こちら で説明されているように、デーモン モードを使用してこれを解決できます。具体的には、次のディレクティブを Apache 構成に追加する必要があります。

WSGIDaemonProcess example.com processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup example.com
于 2009-10-28T09:33:49.090 に答える
3

この問題は、ライブ サーバーでコードを編集しないことで解決できます。真剣に、それに対する言い訳はありません。バージョン管理を使用してローカルで開発し、必要に応じて、最新バージョンをチェックアウトして Apache を再起動するポストコミット フックを使用して、ライブ チェックアウトからサーバーを実行します。

于 2009-10-28T09:36:26.500 に答える