如何向WebApp2添加多线程支持?

2024-09-30 01:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我将Python2.7与WebApp2一起使用,我对这两者都是新手。我在appengine之外运行WebApp2,并跟踪official tutorial。在

假设HelloWord使用粘贴web服务器并且工作正常,但是如果我这样修改它(添加了一些睡眠):

import webapp2

class HelloWebapp2(webapp2.RequestHandler):
    def get(self):
        import time
        time.sleep(6)
        self.response.write('Hello, webapp2!')

app = webapp2.WSGIApplication([
    ('/', HelloWebapp2),
], debug=True)

def main():
    from paste import httpserver
    httpserver.serve(app, host='127.0.0.1', port='8080', use_threadpool=True)

if __name__ == '__main__':
    main()

同时打开几个选项卡,显然这个HelloWord在一个线程中运行。我添加use_threadpool=True只是为了详细起见,据我所知(从阅读粘贴文档)它应该使用多线程,即使没有线程池。在

我尝试了google,但不幸的是,我得到的只有“webapp2是线程安全的,当模块webapp2_本地附加费是可用的”。那对我一点帮助都没有。在

请告诉我如何修改这个HelloWord来异步响应请求!在

附带问题:如果我使用的是Go,是否可以只运行goroutine中的每个处理程序来实现基本的并发性?或者它们(goroutines)应该只用于小函数吗?因为我还没有和Python结婚,所以我正在评估其他的选择。在

编辑:我发现这是googlechrome的问题,而不是Python的问题。在其他浏览器中,一切都按预期工作,所以这个例子已经在多个线程中运行了。不过,我不知道如何结束这个问题。在


Tags: importselftrueapptimeusemain粘贴

热门问题