Я использую Python 2.7 с WebApp2, и я новичок в них обоих. Я запускаю WebApp2 вне App Engine и следую official tutorial.Как добавить поддержку многопоточности в WebApp2?
Предоставлено HelloWord использует веб-сервер Paste и работает нормально, но если я могу изменить его таким образом (добавлены некоторые спальные):
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 только для многословия, насколько я понимаю (из чтения Paste docs), он должен использовать многопоточность в любом случае даже без threadpool.
Я пробовал поиск в Интернете, но, к сожалению, все, что я получаю, это то, что «webapp2 является потокобезопасным, когда доступен модуль webapp2_extras.local». Это мне совсем не помогает.
Пожалуйста, покажите мне, как изменить этот HelloWord, чтобы отвечать на запросы асинхронно!
P.S. Боковой вопрос: если бы я использовал Go, могу ли я запустить каждый обработчик в goroutine для достижения базового параллелизма? Или они (goroutines) используются только для небольших функций? Пока я еще не женат на Python, я оцениваю любую альтернативу.
Редактировать: Я обнаружил, что это проблема Google Chrome, а не Python. В других браузерах все работает так, как ожидалось, поэтому пример уже запущен в нескольких потоках. Однако я не знаю, как закрыть вопрос здесь.