gpt4 book ai didi

python - 如何将 TemporaryUploadedFile 传递给 celery 任务?

转载 作者:可可西里 更新时间:2023-11-01 11:20:51 24 4
gpt4 key购买 nike

我有一个代码:

def post(self, request, *args, **kwargs):
file = request.FILES["import_file"]
# create a tast with celery and save ID of the task
task_id = importing.delay(file).id
return Response({"task_id": task_id}, content_type="application/json")

当 type(file) 为 TemporaryUploadedFile 时出现错误,因为文件无法写入 redis。

我可以取这个临时文件的名称并将这个名称保存到 Redis 中。然后 celery worker 可以从 redis 中获取这个名称并读取文件。但我不确定:能否在 celery worker 从 redis 中获取其名称之前删除该文件?

最佳答案

A TemporaryUploadedFilerequest_finished 后立即关闭并删除。信号被触发。当您的 Celery 工作人员访问该文件时,该文件很可能不再存在。

您应该将文件复制到持久位置,并在完成后让 Celery 清理文件。

关于python - 如何将 TemporaryUploadedFile 传递给 celery 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33920073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com