我有一个Python进程从数据库中读取文件,然后通过fout将它们写入网络卷:
例如:
fout = open((strOutputPath + strOutputName), 'wb')
for row in tupSQLResults :
fout.write(row[0])
fout.close()
99%的时间,这是成功的。但是,在某些情况下,我得到一个可爱的: [Errno 12]无法通过str(sys.exc_info()[1])
分配内存当发生这种情况时,我检查了机器的内存,通常Python进程只使用36mb(类似的虚拟内存),有3 + gbs的可用内存。它将继续下一个文件,并通常输出它们。 (这是一个每5分钟运行一次的计划任务,并输出数据库中具有较新时间戳的任何文件。)
有什么想法会导致这个内存分配错误?这可能是目标卷的问题吗?如果是这样,是否有更可靠的传输机制(我应该在本地fout,然后使用scp或类似的复制吗?)
谢谢!
答案 0 :(得分:1)
可能由于某种原因网络卷不可用。
我会抓住异常,暂停一段时间,再试一次。