我目前正在从事一个googleappengine(Python)项目,该项目主要使用googlecloudsql(带SQL炼金术)作为后端数据存储。在
大多数时候一切都很好。然而,偶尔“有些事”出了问题,我们开始得到奇怪的例外。例如:
AttributeError:“ColumnProperty”对象没有属性“strategy”
AttributeError:“RelationshipProperty”对象没有属性“strategy”
我们认为这可能与新GAE实例的旋转有关,但我们不能确定。在
尽管如此,我的问题是。我和我的团队有哪些策略可以用来追踪这个问题?在
请记住,该应用程序运行在googleappengine上,这样可能会限制我们的选择。在
更新:欧文·纳尔逊下面的评论是正确的。我们按照Google的建议添加了threading.RLock
。然而,我们仍然看到这个问题,但很少发生。在
我想说清楚,到目前为止,我们无法在本地环境中重现这个问题。我们非常确定这与动态实例的旋转有关,而这不是我们在开发中真正能做的事情。在
据我所知,你的应用程序只有在生产模式下才有问题。在
尝试在开发模式下重现错误
最好的解决方案是能够在开发模式下重现这个bug。为此,您可以尝试使用大量数据运行一批unittest。(见how to do local test on appengine)。在
如果那不管用。。。在
打开appstats以获取有关处理程序的更多信息
您可以打开appstats以尝试获取有关当前导致问题的处理程序的信息。Appstats通常为您提供有关数据存储的信息,这在我们的案例中并不相关,但是您可以从一般的请求中获取信息(例如响应时间)
抓住漂亮的接球手
一旦确定了问题的根源或问题的来源,就可以用try..catch..来包围它。。有了它,您可以获得有关当前执行跟踪的更多信息,并有望解决您的问题
相关问题 更多 >
编程相关推荐