Python 在django中共享后台进程?
我的django应用程序使用Python 在django中共享后台进程?,python,django,soap,suds,Python,Django,Soap,Suds,我的django应用程序使用suds-jurko库与SOAP服务对话 from suds.client import Client try: URL = "http://192.168.12.11/xdwq/some_service.asmx?WSDL" client = Client(URL, timeout=30) except: # Fallback mode pass def get_data(ID): try: respon
suds-jurko
库与SOAP服务对话
from suds.client import Client
try:
URL = "http://192.168.12.11/xdwq/some_service.asmx?WSDL"
client = Client(URL, timeout=30)
except:
# Fallback mode
pass
def get_data(ID):
try:
response = client.service.GetData(ID)
data = response.diffgram.NewDataSet.master
return data
except:
return None
问题是该服务需要相当长的时间来初始化(约20秒)。后续请求最多需要3秒钟才能返回。每当请求页面时,Web服务器(带有mod_wsgi的apache)都会花费相当长的时间来加载某些请求
在我的apache配置中
WSGIDaemonProcess www.example.com user=hyde group=hyde threads=15 maximum-requests=10000
如何编写代码,以便apache(或django)能够为SOAP服务共享一个后台进程,并将30秒的代价降到最低
我一直在读芹菜和其他类似的方法,但不确定如何继续。请告知。您必须使用纯python或某些第三方模块(如前面提到的芹菜)创建单独的后台进程,并从django视图(例如使用unix或tcp套接字)与该进程通信 另外,您可以使用不同的方法来代替WSGI来服务将在内存中持久化的django应用程序(gunicorn,uwsgi),但这确实是一个肮脏的解决方案,我不建议这样做
WSGIDaemonProcess www.example.com user=hyde group=hyde threads=15 maximum-requests=10000