私は現在、主にバックエンド データ ストレージに Google Cloud SQL (SQL Alchemy を使用) を使用する Google App Engine (Python) プロジェクトに取り組んでいます。
ほとんどの場合、すべてが完璧に機能します。ただし、「何か」がうまくいかず、奇妙な例外が発生することがあります。例えば:
AttributeError: 'ColumnProperty' オブジェクトに属性 'strategy' がありません
AttributeError: 'RelationshipProperty' オブジェクトに属性 'strategy' がありません
これは、新しい GAE インスタンスのスピンアップに関連している可能性があると考えていますが、確実ではありません。
以上のことを踏まえて、私の質問はこれです。私のチームと私がこの問題を追跡するために使用できる戦略は何ですか?
アプリケーションは Google App Engine で実行されているため、オプションが少し制限される可能性があることに注意してください。
更新:以下の Owen Nelson のコメントは正しいです。threading.RLock
Google の提案に従って追加しました。ただし、この問題はまだ発生していますが、それほど頻繁ではありません。
はっきりさせておきたいのですが、これまでのところ、ローカル環境でこの問題を再現することはできませんでした。これは、動的インスタンスのスピンアップと関係があると確信していますが、それは開発中に実際にできることではありません。