我有一个用bottlepy 编写的python web 应用程序。它的唯一目的是允许人们上传将被处理的大文件(大约需要 10-15 分钟来处理)。
上传代码我比较简单:
@route('/upload', method='POST')
def upload_file():
uploadfile = request.files.get('fileToUpload')
if not uploadfile:
abort(500, 'No file selected for upload')
name,ext = os.path.splitext(uploadfile.filename)
if ext not in ['.zip','.gz']:
abort(500, 'File extension not allowed')
try:
uploadfile.save('./files')
process_file(uploadfile.filename) #this function is not yet implemented
return "uploaded file '%s' for processing" % uploadfile.filename
except IOError as e:
abort(409, "File already exists.")
我计划使用 uWSGI 部署这个应用程序(但是,如果其他技术更适合此目的,它并不是一成不变的。
因此,我对为此目的使用 uWSGI 有一些疑问:
- 如果文件上传需要几分钟,uWSGI 将如何处理其他客户端而不阻塞?
- 有什么方法可以使用uWSGI中的内置功能卸载处理,以便用户在上传后得到响应并可以查询处理状态?
感谢您的任何帮助。