以下代码片段:
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 具有打开文件的缓存机制......也许这可能是问题?