@beduin01

Как в Python удалять файлы через n-минут?

На сервере генерирую по запросу пользователя файл, чтобы отдать его в браузер. Как сделать так, чтобы файл автоматически удалялся через n-минут с файловой системы (если надо пользователь заново кнопку сгенерить нажмет).

Посредством чего это лучше реализовать? Отдельные поток создать? Или как это обычно делается? Использую Sanic, но думаю решение для Flask тоже подойдет
  • Вопрос задан
  • 742 просмотра
Решения вопроса 1
syschel
@syschel
freelance/python/django/backend
Все файлы всегда генерируются сначала в память, а потом уже сохраняются на диск или сразу же из памяти отдаются.
Если у вас файл это текстовик, генерируемый на лету одним потоком, если задача не сверх ресурсоёмкая. То советую вместо сохранения его и отдачи с диска, лучше по запросу генерировать и отдавать из памяти пользователю, пропуская этап сохранения на диск.

Но если всётаки обойтись без сохранения нельзя, то используйте любой планировщих задач, будь то CRON или Celery, а данные о файлах или храните в базе (путь и дата создания) или скриптом пробегайте по папке и удаляйте все файлы с временем жизни больше N. Но лучше в базе такое хранить и не мучить диск.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
netpastor
@netpastor
Python developer
Celery
Schedule
Cron в конце концов
Ответ написан
у Вас есть дата создания файла. от нее и надо отталкиваться
кроновская задачка, которая сканирует нужную папку и сносит файлы страше 5 минут
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы