让SQL炼金术更好地与googleappengin配合使用

2024-05-23 22:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从事一个googleappengine(Python)项目,该项目主要使用googlecloudsql(带SQL炼金术)作为后端数据存储。在

大多数时候一切都很好。然而,偶尔“有些事”出了问题,我们开始得到奇怪的例外。例如:

  • AttributeError:“ColumnProperty”对象没有属性“strategy”

  • AttributeError:“RelationshipProperty”对象没有属性“strategy”

我们认为这可能与新GAE实例的旋转有关,但我们不能确定。在

尽管如此,我的问题是。我和我的团队有哪些策略可以用来追踪这个问题?在

请记住,该应用程序运行在googleappengine上,这样可能会限制我们的选择。在

更新:欧文·纳尔逊下面的评论是正确的。我们按照Google的建议添加了threading.RLock。然而,我们仍然看到这个问题,但很少发生。在

我想说清楚,到目前为止,我们无法在本地环境中重现这个问题。我们非常确定这与动态实例的旋转有关,而这不是我们在开发中真正能做的事情。在


Tags: 数据项目对象实例sql属性团队炼金术
1条回答
网友
1楼 · 发布于 2024-05-23 22:19:54

据我所知,你的应用程序只有在生产模式下才有问题。在

尝试在开发模式下重现错误

最好的解决方案是能够在开发模式下重现这个bug。为此,您可以尝试使用大量数据运行一批unittest。(见how to do local test on appengine)。在

如果那不管用。。。在

打开appstats以获取有关处理程序的更多信息

您可以打开appstats以尝试获取有关当前导致问题的处理程序的信息。Appstats通常为您提供有关数据存储的信息,这在我们的案例中并不相关,但是您可以从一般的请求中获取信息(例如响应时间)

抓住漂亮的接球手

一旦确定了问题的根源或问题的来源,就可以用try..catch..来包围它。。有了它,您可以获得有关当前执行跟踪的更多信息,并有望解决您的问题

相关问题 更多 >