1

我将 Python 2.7 与 WebApp2 一起使用,而且我对它们都是新手。我在 App Engine 之外运行 WebApp2 并且正在关注官方教程

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

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 只是为了冗长,据我所知(从阅读粘贴文档)它应该使用多线程,即使没有线程池。

我尝试使用谷歌搜索,但不幸的是,我得到的只是“当模块 webapp2_extras.local 可用时,webapp2 是线程安全的”。这对我一点帮助都没有。

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

PS 附带问题:如果我使用 Go,我可以只运行 goroutine 中的每个处理程序来实现基本并发吗?或者它们(goroutines)应该只用于小功能吗?由于我还没有与 Python 结婚,我正在评估任何替代方案。

编辑:我发现这是 Google Chrome 的问题,而不是 Python 的问题。在其他浏览器中,一切都按预期工作,因此该示例已经在多个线程中运行。不过,我不知道如何在这里结束问题。

4

1 回答 1

0

您需要将以下标志添加到您的 app.yaml 文件中:

线程安全:是

看到这个

于 2014-05-23T19:23:09.337 回答