WSGI アプリケーションのプロファイリングにミドルウェアを使用しようとしています。このミドルウェアはplop
、モジュールに依存する Python 用の低オーバーヘッド プロファイラーである which を使用しsignal
ます。
このミドルウェアを使用する Django アプリを実行すると、./manage.py runserver --forked
ミドルウェアは期待どおりに動作します。ただし、同じ Django アプリが apache で実行されている場合mod_wsgi
、意図したとおりに動作しません。
mod_wsgi
インスタンスは and で構成されておりWSGIRestrictSignal Off
、WSGIDaemonProcess example processes=5 threads=1
Django アプリを実行すると、次のエラーが発生します。
ValueError: signal only works in main thread
--forked
これは、フラグなしで開発サーバーを実行した場合に発生するのと同じエラーです。スレッド数が1なので、Apacheで発生するはずはないと思います。
これを修正するにはどうすればよいですか?