【发布时间】:2018-07-03 10:58:47
【问题描述】:
我有一个 django 应用程序,我在该应用程序上上传了几个巨大的文件。 在我看来,我想对这些文件执行异步任务:
def my_view(request):
Thread(target=_my_task, args=[request.FILES]).start())
return redirect(my_url)
问题是,当我在线程中使用文件时,主请求已经完成并且请求对象被删除,连同其中包含的 InMemoryUploadedFile 对象,我得到了一个 IO 异常:
ValueError: I/O operation on closed file.
如何在不将它们写入我的文件系统的情况下强制保留这些文件?
【问题讨论】:
-
这就是您不以这种方式使用线程执行异步任务的原因之一。使用适当的任务队列。
-
我知道使用像 Celeri 这样的服务会更好,但它如何帮助解决文件关闭问题?
标签: python django asynchronous large-file-upload