gpt4 book ai didi

python - Appengine Appstats 出现死锁

转载 作者:行者123 更新时间:2023-11-28 16:39:58 29 4
gpt4 key购买 nike

我在 gae 上有一个 Flask 应用程序,它工作正常。我正在尝试添加 Appstats 支持,但一旦启用它,我就会陷入僵局。

当我尝试使用登录的用户 ndb 模型设置 werkzeug LocalProxy 时,显然发生了这种死锁(它被称为 current_user,就像在 Flask-Login 中所做的那样,为您提供更多详细信息)。

错误是:

RuntimeError: Deadlock waiting for <Future 104c02f50 created by get_async(key.py:545) for tasklet get(context.py:612) suspended generator get(context.py:645); pending>

LocalProxy 对象是使用此语法设置的(根据 Werkzeug 文档):

current_user = LocalProxy(lambda: _get_user())

并且 _get_user() 进行了一个简单的同步查询 ndb.query。

在此先感谢您的帮助。

最佳答案

我今天遇到了这个问题。在我的例子中,获取用户详细信息的请求似乎正在触发 appstats。然后,Appstats 遍历调用堆栈并将所有局部变量的详细信息存储在每个堆栈帧中。

session 本身位于这些堆栈帧之一中,因此 appstats 尝试将其打印出来并再次触发用户获取代码。

提出了 2 个“解决方案”,尽管它们都不是很好

  • 完全禁用 appstats。
  • 禁止在 appstats 中记录局部变量。

目前我选择了后者。 appstats 允许您在 appengine_config.py 文件中配置各种设置。通过添加以下内容,我能够避免记录局部变量详细信息(这会阻止代码触发错误):

appstats_MAX_LOCALS = 0

关于python - Appengine Appstats 出现死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699828/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com