它在带有猴子补丁的 Django 运行服务器下运行良好:
if __name__ == "__main__":
import gevent
from gevent import monkey
monkey.patch_all()
execute_manager(settings)
但是,在生产中,我们使用 Apache 和 mod_wsgi,以及一个 wsgi 文件。将上述内容放在 WSGI 文件中没有任何效果。似乎当调用 wsgi 文件时,它不是 as __main__
,但删除if
也什么都不做。
我找到gevent.wsgi.WSGIHandler()
并尝试用它替换django.core.handlers.wsgi
它,但它需要request
andapplication
作为参数,而我的 wsgi 文件中没有。
这是我的 wsgi 文件的样子:
import os,sys
import django.core.handlers.wsgi
from gevent import wsgi
sys.path.append('/app/src')
sys.path.append('/app/src/webInterface')
os.environ['DJANGO_SETTINGS_MODULE'] = 'WebInterface.settings'
#application = django.core.handlers.wsgi.WSGIHandler()
application = wsgi.WSGIHandler()