我使用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的問題。在其他瀏覽器中,一切都按預期工作,因此該示例已在多個線程中運行。不過,我不知道如何解決問題。