Appengine Python中的并发请求

18b*_*tes 7 python concurrency performance google-app-engine python-2.7

官方的appengine文档说如果我们在app.yaml中将threadsafe属性设置为true,那么appengine将服务器并发请求.

官方链接:https: //developers.google.com/appengine/docs/python/python27/newin27#Concurrent_Requests

  • 如果我们将线程安全属性设置为true,是否意味着应用程序会更快(超过2.5)?官方文档/博客说,但我正在寻找真实世界的经验.

  • 在高层,它如何在内部工作?我们的应用程序是否会被初始化并为每个请求生成一个新的应用程序?

Fox*_*Lad 11

每个请求仍然只有一个线程 - 您无法生成.

关闭线程安全,Appengine只会将一个请求路由到一个实例.因此,如果处理请求的时间每秒的请求数接近1,则Appengine将启动一个新实例来处理它们.这要花钱.启用线程安全后,Appengine可以将多个请求路由到实例.

这是否对您有所帮助取决于您的应用和流量:

  1. 首先,计算每秒入站请求/平均延迟.如果这个很好,那么线程安全不会有太大的不同.
  2. 检查您的应用程序,了解它等待API花费的时间(例如数据存储区或URL提取).如果这是一个很大的比例,那么线程安全将有助于保持您的实例倒计时.如果没有,它将无济于事.

除非您的应用程序处理密集(API等待很少),否则简单的规则是切换线程安全.