0

我正在尝试使用中间件来分析 WSGI 应用程序。这个中间件使用plop的是一个低开销的 python 分析器,它依赖于signal模块。

如果我运行一个通过运行使用此中间件的 Django 应用程序,./manage.py runserver --forked那么它的中间件将按预期工作。但是,当同一个 Django 应用程序在 apache 上运行时,mod_wsgi它不会按预期工作。

mod_wsgi实例配置了 Django 应用程序WSGIRestrictSignal OffWSGIDaemonProcess example processes=5 threads=1并且当运行 Django 应用程序时,会发生以下错误:

ValueError: signal only works in main thread

如果我在没有--forked标志的情况下运行开发服务器,则会发生相同的错误。我认为它不应该发生在 apache 上,因为线程数是 1。

我能做些什么来解决这个问题?

4

1 回答 1

1

使用在样本之间执行 sleep() 的后台线程在技术上应该可行,并且在我自己完成此操作之前使用过该方法。

有一个为此目的创建后台线程的示例:

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

于 2012-08-23T00:19:15.013 回答