我正在研究一个网页.py上传文件的应用程序和我的部署有真正的问题。基本上,我想给用户一个'百分比上传',但这似乎是一个严重的混乱时,部署在mod\wsgi。主要上传如下:
out = open(path, 'wb', 1000)
while (True):
packet = fileU.file.read(1000)
if not packet:
break
else:
out.write(packet)
sessions[code].progress += 1
out.close()
“Session”是一个全局字典,它包含跟踪会话的对象。为了获得当前的进度,我通过客户机每秒的get请求获取给定会话的当前进度。在
目前的问题是,这只适用于小规模的上传。似乎任何超过100kb的内容都不会增加progress变量。如果放在循环之外(或者在调用read()之前)或者文件相当小,那么这个值肯定会增加。在
有没有可能wsgi正在为更大的文件打开新的线程,从而使我的全局计数器只在上载线程的本地?可能是别的什么。在
你不能只使用一个全局字典。事实上,web服务器很可能正在使用一个单独的线程来处理以下请求,并且不能保证会话字典是相同的。尝试使用会话对象,它是网页.py. 它使用数据库或文件来存储可以跨不同线程或进程访问的数据。在
web.py session example
相关问题 更多 >
编程相关推荐