![](/img/trans.png)
[英]Is setting JVM Xmx option in Google App Engine Standard useful?
[英]Dash app deployed on Google App Engine standard continuously refreshing
我目前正在尝试使用 App Engine 的标准环境部署 Python Dash 应用程序。 当应用程序运行时,它会稳定几秒钟,然后完全刷新(即它会闪烁到一个空白的加载屏幕,然后再次呈现)。
刷新和回调之间的所有用户输入都将丢失并再次运行。 这在应用程序运行时重复。
同一个应用程序在本地运行时表现正常,这让我认为循环回调形成反馈循环不是问题。 此外,GCP 应用程序日志中似乎没有任何错误。
app.yaml 的内容是:
runtime: python38
instance_class: F4
service: myapp
entrypoint: python app.py
service_account: myproject@appspot.gserviceaccount.com
app.py 的内容是:
from src.content import app
server = app.server
def run():
app.run(host="0.0.0.0", port="8080", debug=True)
if __name__ == '__main__':
run()
通过运行gcloud app deploy -v myapp_v1.
任何的建议都受欢迎。
您正在使用开发服务器运行 Dash,它使用 Flask 的开发服务器,并且不打算用于 Development ,因此 Dash 也是如此。
我的猜测是,这与使用debug=True
运行开发服务器时启用的热重载功能有关。 您可以尝试将其设置为False
,但即使可行,我也强烈建议切换为使用 WSGI 服务器部署应用程序。 不需要那么多额外的努力。
Gunicorn将是最简单的。 查看概述如何使用 Gunicorn 提供 WSGI 应用程序的 GCP 文档。
看起来它归结为将 Gunicorn 添加到您的requirements.txt
并设置app.yaml
的entrypoint
点参数。 Flask 实例(因此是您应用程序的 WSGI 入口)是app.server
,其中app
是一个dash.Dash instance
。 我以前没有这样做过,但是查看 GCP 文档,我对您的entrypoint
点行的猜测是:
entrypoint: gunicorn -b :$PORT app:server
然后可以删除使用if __name__ == '__main__'
来运行开发服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.