GAE WSGIApplication и множественный запрос - PullRequest
0 голосов
/ 19 июля 2010

В dev_appserver

class MainPage(webapp.RequestHandler):
  def get(self):
     self.response.out.write("Hello MainPage")

class TestPage(webapp.RequestHandler):
  def get(self):
    # 10 seconds
    i = 1
    while True:
      if i == 10:
        break
      time.sleep(1)
      i = i + 1

application = webapp.WSGIApplication([
  ('/', MainPage)
  ('/test10', TestPage),
], debug=True)

Я не понимаю.Я иду к http://localhost:8080/test10 и иду к http://localhost:8080/,, но MainPage не выполняется.Через 10 секунд MainPage возвращает «Hello MainPage».Сервер GAE не поддерживает множественные запросы?

Ответы [ 3 ]

1 голос
/ 20 июля 2010

Вы не включили метод main () или «магический» раздел, который приводит к правильной обработке первого запроса. Добавьте следующее в конец вашего модуля:

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()
1 голос
/ 20 июля 2010

Реальные веб-серверы GAE на серверах Google в облаке легко поддерживают несколько запросов (действительно, их масштабируемость - одна из их сильных сторон!), Как правило, с помощью нескольких процессов и, возможно, нескольких компьютеров, чтобы разделить нагрузку в течение периодов времени, в течение которых многие запросы приходят быстро и яростно.

SDK, работающий на вашем локальном компьютере и предназначенный исключительно для того, чтобы помочь вам разрабатывать (определенно не для того, чтобы фактически обслуживать производственный трафик! -), вместо этого обслуживает запросы один за другим, чтобы вам было легче отлаживать (напрямую, через логи и тд и тп).

Если вы хотите обслуживать приложения GAE самостоятельно (со своего собственного компьютера или центра обработки данных), не для целей разработки, а для производства, рассмотрите альтернативные реализации API-интерфейсов GAE, такие как appscale (возможно, более подходящие если у вас есть много серверов, доступных для этой цели, и навык sysadm, чтобы справиться с ними) и typhoonae (вероятно, больше подойдет, если у вас есть один или несколько серверов для использования и вы хотите меньше загружать sysadm).

0 голосов
/ 21 июля 2010

@ Ник Джонсон: Ты это проверял? Конечно! Мой код включал функции «run_wsgi_app» и «main».

http://groups.google.com/group/google-appengine-python/browse_thread/thread/102d76f04ecc5155

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...