Django отправляет файл Excel в Celery Task. Ошибка InMemoryUploadedFile - PullRequest
0 голосов
/ 25 июня 2019

У меня есть фоновый процесс - прочитайте файл Excel и сохраните данные из этого файла. Мне нужно сделать чтение файла в фоновом режиме. Но у меня есть ошибка InMemoryUploadedFile. Мой код

def create(self, validated_data):
   company = ''
   file_type = ''
   email = ''
   file = validated_data['file']

            import_data.delay(file=file,
                                       company=company,
                                       file_type=file_type,
                                       email=email)

мой метод выглядит как

@app.task
def import_data(
        file,
        company,
        file_type,
        email):
// some code

Но у меня есть ошибка InMemoryUploadedFile.

Как я могу отправить файл в cellery без ошибок?

1 Ответ

2 голосов
/ 25 июня 2019

Когда вы задерживаете задачу, Celery пытается сериализовать параметры, которые в вашем случае включены в файл.

Файлы и особенно файлы в памяти не могут быть сериализованы.

ИтакЧтобы решить эту проблему, вы должны сохранить файл и передать путь к файлу отложенной функции, а затем прочитать файл и выполнить вычисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...