Возникли две такие задачи в проекте.
Надо импортировать файл в формате csv, ничего сложного, но по каждой строчке файла надо выполнить определенный не совсем простой алгоритм, несколько раз обращаться к БД и т.п. Все бы ничего, но файл содержит больше 22 000 строк. Т.е. весь этот алгоритм надо прогнать больше 22 000 раз. Как сделать так, чтобы сервер при этом не завис и не вылетел надолго? Поможет ли в этой ситуации, если я всю обработку файла загоню как таск в селери? Или же Более правильно будет обработку каждой строки загонять в отдельный таск? Просто подобное разбиение на таски вызовет дополнительные накладные расходы (каждый такой таск хоть и не очень простой, но и не слишком сложный). Или может есть лучший способ?
Надо получить файл от пользователя и на основе данных в этом файле внести изменения в БД, но при этом надо дать возможность пользователю сделать предварительную обработку информации в файле. Т.е. Поользователь загружает файл, после этого ему выдается форма на основании некоторых данных в этом файле, в этой форме он заполняет все поля и отправляет форму на сервер, после этого используя совместно данные файла и формы выполняется алгоритм по внесению изменений в БД. Как это лучше организовать? Файл с данными небольшой, около 150 КБ. Я пока вижу путь - получить файл, взять из него нужные данные, сформировать форму, отдать пользователю, а файл засунуть в сессию, после получения формы взять файл из сессии и выполнить алгоритм.