17

Webサーバーおよびアプリケーションフレームワークとしてgeventを試してみたいと思います。Pythonアプリケーション全体を強制終了して再起動せずに、サーバーを「再起動」したり、アプリケーションコードを更新したりする方法がわかりません。

これはまさにそれが行われている方法ですか?たぶん、それは私がアパッチの方法とは異なるパラダイムを理解することの問題です。

また、半ば関連する質問として、geventを介してWebサーバーとサイト/サービス自体を実行することも良い考えです。サーバーにgunicornを使用し、アプリケーションにgeventを使用する他の実装を見てきましたが、私が見たベンチマークから、スケーリングに関しては、geventはサーバーとしてgunicornをはるかに上回っています。

4

1 に答える 1

27

Gunicornには3人のgeventワーカーがいます:

  • -k gevent(gunicornのHTTPパーサーを使用)
  • -k gevent_pywsgi(gevent.pywsgiモジュールを使用)
  • -k gevent_wsgi(gevent.wsgiモジュールを使用)

gevent.wsgiは、libeventに基づく高速HTTPサーバーです。

gevent.pywsgiは、Pythonで実装されたWSGIサーバーです。

gevent.pywsgiが存在する理由は、libevent-httpに、keep-alive、streaming、ssl、およびwebsocketをサポートしないなどのいくつかの制限があるためです。

geventの新しいアルファバージョン(1.0a3)はlibev使用し、libevent-httpに基づくWSGIサーバーを含まないことに注意してください。現在、ここでのgevent.wsgiはgevent.pywsgiのエイリアスです。

geventのサーバークラスには、プロセス管理、再起動、リロードなどに関連する機能はありません。ただし、これらの機能は展開に必要です。Gunicornは、geventのWSGIサーバーにそれを提供します。これを使って。

于 2011-10-22T03:26:19.477 に答える