2013-03-16 62 views
1

我使用Python 2.7與WebApp2,我是他們兩個新來的。我在App Engine之外運行WebApp2,並且遵循official tutorial如何向WebApp2添加多線程支持?

提供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只是爲了詳細說明,就我所知(從閱讀粘貼文檔),即使沒有線程池,也應該使用多線程。

我嘗試了谷歌搜索,但不幸的是,我得到的是當webapp2_extras.local模塊可用時「webapp2是線程安全的」。這根本不能幫助我。

請告訴我如何修改此HelloWord以異步地回答請求!

P.S.側面的問題:如果我使用Go,我可以在goroutine中運行每個處理程序來實現基本併發嗎?或者他們(goroutines)是否只能用於小功能?由於我還沒有和Python結婚,所以我正在評估任何替代方案。

編輯:我發現這是Google Chrome的問題,而不是Python的問題。在其他瀏覽器中,一切都按預期工作,因此該示例已在多個線程中運行。不過,我不知道如何解決問題。

回答

0

您需要將以下標誌添加到您的app.yaml文件:

線程:是的

看到this