次のコード スニペット:
HDFStore = pandas.io.pytables.HDFStore
lock = threading.RLock()
with lock:
store = HDFStore('my_datafile.hdf','r')
data_frame = store['my_series']
store.close()
return data_frame['my_column']
Web リクエストに応答して実行されるため、複数のスレッドで同時に実行される可能性があります。また、store.close が呼び出される前に実行が中断される可能性もあります。
再現できない問題 (HDFStore ライブラリの例外、または空のデータが返される) が発生しています。
このコードをスレッドセーフにし、例外が発生したときにファイルが正しく閉じられるようにする正しい方法は何ですか?
調査の結果、HDFStore には開いているファイルのキャッシュ メカニズムがあることがわかりました。これが問題なのでしょうか?