Сохранение файлов на S3 не работает внутри Celery worker

У меня возникают проблемы с хранением файлов в S3 из задачи celery в django. Я делаю следующие вещи

  • Получение данных из БД
  • Создание XLSX-файла с помощью BytesIO
  • Хранение этого файла с помощью file.save метода Django

сниппат кода

        try:
            excel_file = generate_xlsx_file(sheet_dfs)
        except Exception as e:
            logger.exception("Error while generating excel file")
            return

        # Save the report
        report = Report.objects.create()

        file_name = generate_file_name()

        # Save the file
        report.file.save(file_name, ContentFile(excel_file))

в последней строке, celery worker просто останавливается и не обрабатывает другие задачи. Также этот код работает нормально, если я запускаю его в оболочке django shell

Так что проблема была в eventlet, я запускал celery workers с eventlet и их удаление решило проблему. Я нашел обходной путь для этого в этом ответе: Celery with Eventlets fails when uploading to s3 (boto3)

Вернуться на верх