为什么app.yaml中的“线程安全:是”不适用于Google App Engine的灵活环境?

时间:2018-06-08 05:46:00

标签: java google-app-engine thread-safety app-engine-flexible deploying

在标准环境中,我们可以在app.yaml中设置“threadsafe:yes”,为python中的flask框架启用多线程。因为谷歌会为我们做任何事情。

对于灵活的env,我们需要设置gunicorn以使异步工作者能够使应用程序一次处理多个请求。

但我想知道为什么参数“threadsafe:yes”不适用于灵活的环境,而Google在部署应用引擎时没有给我们任何错误消息。

app.yaml

runtime: python
env: flex
api_version: 1
threadsafe: yes  --> Is this working ?
service: myapp
entrypoint: gunicorn -b :$PORT main:app

1 个答案:

答案 0 :(得分:1)

我已经看到,看起来您可以灵活地设置“threadsafe:yes”但它没有实际效果,因为在GAE Standard中你会使用com.google.appengine.api.ThreadManager并且如你所说 Google会为我们做任何事情,但在GAE Flexible中,您必须使用usual Java's class Thread or whatever you want to use管理自己的主题。

因此,部署时没有错误消息,但对代码没有任何影响,因为从一开始就是您的线程的安全性。