モジュールスコープで作成した変数(クラスまたは関数が定義される前のファイルの先頭など)が時間の経過とともに異なる動作をするという奇妙なエラーが発生しています。この変数(それを呼びましょう_cache
)は私のクラスに引き込まれます:
_cache = None
class XMLGenerator(object):
global _cache
def __init__(self, parms):
if _cache is None:
_cache = expensive_query(parms)
このキャッシュの結果は、Webサービスに着信するリクエストのコンテキストによって異なる可能性がありますが、同じサービスへの呼び出し間で結果のXML出力に異なる動作が見られます。サーバーを再起動でき、すべてが素晴らしいですが、最終的に、異常な動作が再び始まります。
uWSGIはどういうわけかリクエスト間の状態を保持していますか?