141

最後に、開発環境を runserver から gunicorn/nginx に移行しました。

ソースが変更されたときにサーバーが自動的に再起動するように、runserver の autoreload 機能を gunicorn に複製すると便利です。それ以外の場合は、サーバーを手動で再起動する必要がありkill -HUPます。

手動再起動を回避する方法はありますか?

4

4 に答える 4

287

これは古い質問ですが、バージョン 19.0 からオプションがあることを知っておく必要がgunicornあり--reloadます。そのため、サードパーティのツールは必要ありません。

于 2014-07-22T16:40:00.683 に答える
21

1 つのオプションは、--max-requests--max-requests 1を使用して、起動オプションに追加することにより、生成された各プロセスが 1 つの要求のみを処理するように制限することです。新しく生成されたすべてのプロセスは、コードの変更を確認する必要があり、開発環境では、リクエストごとの余分な起動時間は無視できるはずです。

于 2013-06-13T04:30:54.350 に答える
15

Bryan Helmigrun_gunicornがこれを思いついたので、直接起動する代わりに使用するように変更しました。これによりgunicorn、これら 3 つのコマンドを django プロジェクトのルート フォルダー (virtualenv を有効にした状態) のシェルにカット アンド ペーストするだけで済みます。

pip install watchdog -U
watchmedo shell-command --patterns="*.py;*.html;*.css;*.js" --recursive --command='echo "${watch_src_path}" && kill -HUP `cat gunicorn.pid`' . &
python manage.py run_gunicorn 127.0.0.1:80 --pid=gunicorn.pid
于 2013-10-21T19:24:55.497 に答える