Python 与turbogears2同时请求
我对web开发非常陌生,我正在尝试构建一个简单的web界面,使用Ajax调用刷新数据,并使用turbogears2作为后端 我的Ajax调用工作正常,并定期调用我的Turbogears2服务器,但是这些调用需要时间才能完成(一些请求使服务器在其他机器上使用远程SSH调用,这需要3-4秒才能完成) 我的问题是,TurboGears在处理下一个请求之前会等待每个请求完成,因此所有并发Ajax调用都在排队,而不是并行处理。 刷新N个值需要3*N秒,而并发性只需要3秒 你知道怎么解决这个问题吗 下面是我当前的服务器端代码(方法get_load是用Ajax调用的):Python 与turbogears2同时请求,python,ajax,concurrency,turbogears2,Python,Ajax,Concurrency,Turbogears2,我对web开发非常陌生,我正在尝试构建一个简单的web界面,使用Ajax调用刷新数据,并使用turbogears2作为后端 我的Ajax调用工作正常,并定期调用我的Turbogears2服务器,但是这些调用需要时间才能完成(一些请求使服务器在其他机器上使用远程SSH调用,这需要3-4秒才能完成) 我的问题是,TurboGears在处理下一个请求之前会等待每个请求完成,因此所有并发Ajax调用都在排队,而不是并行处理。 刷新N个值需要3*N秒,而并发性只需要3秒 你知道怎么解决这个问题吗 下面是我
您的问题可能是由于您正在使用齿轮箱
wsgiref
服务器服务请求。默认情况下,wsgiref服务器是单线程的,因此可以同时为单个请求提供服务。这可以通过在development.ini
服务器部分中提供wsgiref.threaded=true
配置选项来更改(指定ip地址和端口的位置也相同)。有关更多详细信息,请参阅和
请注意,
wsgiref
是TurboGears的开发服务器,通常不鼓励在生产中使用。在部署你的应用程序时,你应该考虑使用一些类似于服务员、CuSuStTe或MODYWSGI的东西,请参阅< P>你的问题可能是因为你正在用<强>齿轮箱<强> >代码> WSGReRf服务器来服务请求。默认情况下,wsgiref服务器是单线程的,因此可以同时为单个请求提供服务。这可以通过在development.ini
服务器部分中提供wsgiref.threaded=true
配置选项来更改(指定ip地址和端口的位置也相同)。有关更多详细信息,请参阅和
请注意,wsgiref
是TurboGears的开发服务器,通常不鼓励在生产中使用。在部署应用程序时,应考虑使用类似服务员、CuasStTe或MODYWSGI之类的东西,请参阅
class RootController(TGController):
@expose()
def index(self):
with open ("index.html") as data:
index = data.read()
return index
@expose()
def get_load(self, ip):
command = "bash get_cpu_load.sh"
request = subprocess.Popen(["ssh", "-o ConnectTimeout=2", ip, command])
load = str(request.communicate()[0])
return load