0

WSGI アプリケーションのプロファイリングにミドルウェアを使用しようとしています。このミドルウェアはplop、モジュールに依存する Python 用の低オーバーヘッド プロファイラーである which を使用しsignalます。

このミドルウェアを使用する Django アプリを実行すると、./manage.py runserver --forkedミドルウェアは期待どおりに動作します。ただし、同じ Django アプリが apache で実行されている場合mod_wsgi、意図したとおりに動作しません。

mod_wsgiインスタンスは and で構成されておりWSGIRestrictSignal OffWSGIDaemonProcess example processes=5 threads=1Django アプリを実行すると、次のエラーが発生します。

ValueError: signal only works in main thread

--forkedこれは、フラグなしで開発サーバーを実行した場合に発生するのと同じエラーです。スレッド数が1なので、Apacheで発生するはずはないと思います。

これを修正するにはどうすればよいですか?

4

1 に答える 1

1

サンプル間で sleep() を実行するバックグラウンド スレッドを使用することは、技術的には機能するはずであり、これを自分で実行する前にそのアプローチを使用したことがあります。

この目的でバックグラウンド スレッドを作成する例を以下に示します。

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Extracting_Python_Stack_Traces

于 2012-08-23T00:19:15.013 に答える