我正在尝试使用中间件来分析 WSGI 应用程序。这个中间件使用plop
的是一个低开销的 python 分析器,它依赖于signal
模块。
如果我运行一个通过运行使用此中间件的 Django 应用程序,./manage.py runserver --forked
那么它的中间件将按预期工作。但是,当同一个 Django 应用程序在 apache 上运行时,mod_wsgi
它不会按预期工作。
该mod_wsgi
实例配置了 Django 应用程序WSGIRestrictSignal Off
,WSGIDaemonProcess example processes=5 threads=1
并且当运行 Django 应用程序时,会发生以下错误:
ValueError: signal only works in main thread
如果我在没有--forked
标志的情况下运行开发服务器,则会发生相同的错误。我认为它不应该发生在 apache 上,因为线程数是 1。
我能做些什么来解决这个问题?