0

我想将文件上传到 django 视图并将其传递给执行其他所有操作的转换函数。转换函数db_transform_and_save需要一个类似文件的对象。到目前为止,我的工作解决方案是:

class UploadView(FormView):
    template_name = 'mytemplate.html'
    form_class = MyUploadForm

    def form_valid(self, form):
        db_transform_and_save(form.cleaned_data['my_upload'].read())

我的问题是:

  1. 有什么数据丢失的方法吗?
  2. 如果上传过程中连接失败会怎样?这是否意味着我的db_transform_and_save功能永远运行?
  3. 如果服务器要处理的连接太多,会发生什么情况?
  4. 我需要某种 que - 机制吗?

我正在运行这个 django 应用程序,它有一个 gunicorn,有 4 个工人。

4

1 回答 1

0
  1. 如果您的服务器崩溃或连接丢失,是的,您将丢失数据 - 除非您对文件上传进行微观管理,传输非常小的块并自行实施确认层 - 只要您不是过于关键的任务,这可能是矫枉过正......
  2. 发布的数据不会到达,您将收到一个空文档(您应该检查您的db_transform_and_save!)
  3. 它会慢下来。如果有很多方法,它会显着减慢(几乎没有反应)。如果您预计数据负载会很重,您应该使用实际的上传大小来测试您的系统。在正常情况下,一切都应该顺利进行......
  4. 只要您的上传不会相互干扰,您就不需要其他任何东西。
于 2013-11-01T14:18:22.337 回答