Pi *_*ion 7 python deadlock timeout file
我需要打开一个通过 NFS 安装到我的服务器的文件。有时,NFS 挂载失败会导致所有文件操作死锁。为了防止这种情况,我需要一种方法让open
python 中的函数在设定的时间后超时。例如类似的东西open('/nfsdrive/foo', timeout=5)
。当然,默认open
程序没有timeout
或类似的关键字。
这里有人知道如果打开时间太长的话可以有效地停止尝试打开(本地)文件的方法吗?
注意:我已经尝试过 urllib2 模块,但它的超时选项仅适用于网络请求,不适用于本地请求。
您可以尝试使用stopit
from stopit import SignalTimeout as Timeout
with Timeout(5.0) as timeout_ctx:
with open('/nfsdrive/foo', 'r') as f:
# do something with f
pass
Run Code Online (Sandbox Code Playgroud)
在多线程环境(如 Django)中可能存在一些问题SignalTimeout
。ThreadingTimeout
另一方面,当您运行太多“限时”功能时,可能会导致某些虚拟主机上的资源出现问题
PS 我的示例还限制了打开文件的处理时间。要仅限制文件打开,您应该使用不同的方法来手动打开/关闭文件和手动异常处理
归档时间: |
|
查看次数: |
3716 次 |
最近记录: |